索引设计使用原则
为了提升数据检索速度,降低查询延时和IO消耗,在建表或者编写SQL语句时,应该首先设计及检查索引和数据分布情况
下面是常见的索引设计或使用原则:
尽量选择惟一性索引;
为经常需要排序、分组和联合操作的字段建立索引;
为常作为查询条件的字段建立索引;
限制索引的数目,索引越多,更新和插入的效率越低;
尽量使用数据量少的索引;
组合索引中的尽量把能过滤掉更多数据的字段放在前面;
尽量使用前缀来索引,针对长文本,TEXT等类型;
删除不再使用或者很少使用的索引;
数据是动态变化中的,索引的使用也需要根据数据的变化而变化。
show processlist 命令
输入show processlist命令后可以看到数据库中所有连接中的session,以及相应SQL的执行情况。
索引设计及使用规范
创建表时,要根据规划中不同表的用途和查询方式建立合适的索引;
编写SQL时,要清楚的知道表有哪些索引,如何才能最大化的利用索引查询,降低查询速度,尤其是数据量超大(超过100万条),或者需要进行多表关联时,本条规则尤其重要;
SQL编写后,要养成使用explain命令查看索引使用情况的习惯,避免一些本应该使用索引的SQL并没有使用索引,或者因为数据问题,使用索引可能还没有不用来的快;
定时查看数据库执行情况,使用show processlist或者开启慢查询,查看慢查询日志,分析执行效率低的SQL;
当数据查询慢,或者数据库IO开销很高的情况,要学会使用show processlist或show full processlist命令查看数据库当前在做什么,哪些SQL执行慢,问题在哪里等等。