Mysql新建索引:
CREATE INDEX indexName ON mytable(username(length));
修改表结构建立索引:
ALTER mytable ADD INDEX [indexName] ON (username(length));
索引两个特征:唯一索引和复合(组合)索引
唯一索引:
1): 只要条件列中出现索引列,无论在什么位置,都能利用索引查询。
复合索引(联合索引):create index person_name on person (last_name, first_name)
1):查询条件中出现 联合索引第一列,或者全部,则能利用联合索引. 若没有出现联合索引的第一列,而出现联合索引的第二列,或者第三列,都不会利用联合索引查询.
2): 条件列中只要条件相连在一起,以本文例子来说就是:last_name=’1′ and first_name=’1′与first_name=’1′ and last_name=’1′,无论前后,都会利用上联合索引.
两者的共同点:
1):要想利用索引,都要符合SARG标准.
2):都是为了提高查询速度.
3):都需要额外的系统开销,磁盘空间.
CREATE INDEX indexName ON mytable(username(length));
修改表结构建立索引:
ALTER mytable ADD INDEX [indexName] ON (username(length));
索引两个特征:唯一索引和复合(组合)索引
唯一索引:
1): 只要条件列中出现索引列,无论在什么位置,都能利用索引查询。
复合索引(联合索引):create index person_name on person (last_name, first_name)
1):查询条件中出现 联合索引第一列,或者全部,则能利用联合索引. 若没有出现联合索引的第一列,而出现联合索引的第二列,或者第三列,都不会利用联合索引查询.
2): 条件列中只要条件相连在一起,以本文例子来说就是:last_name=’1′ and first_name=’1′与first_name=’1′ and last_name=’1′,无论前后,都会利用上联合索引.
两者的共同点:
1):要想利用索引,都要符合SARG标准.
2):都是为了提高查询速度.
3):都需要额外的系统开销,磁盘空间.
补充说明: stmtText信息来产生,在查询语句前面加上:SET STATISTICS PROFILE on.可以通过运行它,来观察你的查询是否合理,这样才能真正做到优化.