mysql - 索引

最普通的情况,是为出现在where子句的字段建一个索引。为方便讲述,先建立一个如下的表。
CREATE TABLE mytable(
idserial primary key,
category_id int not null default0,
user_id int not null default0,
adddate int not null default0
);
 
如果在查询时常用类似以下的语句:
SELECT * FROM mytable WHERE category_id=1;
 
最直接的应对之道,是为category_id建立一个简单的索引
CREATE INDEX mytable_categoryid ON mytable (category_id);
 
OK.如果有不止一个选择条件呢?例如:
SELECT * FROM mytable WHERE category_id=1 AND user_id=2;
 
第一反应可能是,再给user_id建立一个索引。不好,这不是一个最佳的方法。可以建立多重的索引
CREATE INDEX mytable_categoryid_userid ON mytable(category_id,user_id);
 
注意到在命名时的习惯了吗?使用"表名_字段1名_字段2名"的方式。很快就会知道为什么这样做了。
 
 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。