您的位置:首页 > 数据库 > MySQL

MySQL-index

2015-07-18 22:52 567 查看
MySQL创建索引应该注意的问题

1.

对于存在有多个条件的情况,比如:

“where a=xx and b=yy”;

“where a=xx order by b”;

“where a=xx group by b”;

需要使用组合索引。但是组合索引只能在SQL语句中满足”最左前缀”的条件下使用。且组合索引有一些副作用,如索引尺寸可能比数据本身大,因为组合索引的组合条目多。所以在实际应用中,要量身定做,使用慢查询分析工具分析。

2.

建立索引是有资源开销的,索引占用的空间大小也是需要考虑的。而且当执行update、delete语句时,会使得索引更新,也会耗掉更多的时间。可以使用mysqlreport报告,了解select、update、delete、insert、replace各语句所占的百分比。

3

查询语句中使用like关键字进行查询时,如果匹配字符串的第一个字符是 % 时,索引不会被使用。如果 % 不是在第一个位置,索引就会被使用。

4

查询语句只有OR关键字时,如果OR前后的两个条件的列都是索引时,查询中将使用索引。如果OR前后有一个条件的列不使用索引,那么查询中将不使用索引。

5

子查询可以使查询更灵活,但是子查询执行效率不高。子查询时,MySQL需要为内层查询语句的查询结果建立一个临时表,然后外层查询语句在临时表中查找记录。查询结束后,MySQL还需要撤销这些临时表。所以在MySQL中建议使用连接查询代替子查询,连接查询不需要建立临时表,其速度比子查询要快
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL index