MySQL关系型数据库索引设计使用原则与优化

[ MySQL ] 2020-01-13 22:37:37 杨歆 470

索引设计使用原则

为了提升数据检索速度,降低查询延时和IO消耗,在建表或者编写SQL语句时,应该首先设计及检查索引和数据分布情况

下面是常见的索引设计或使用原则:

    尽量选择惟一性索引;

    为经常需要排序、分组和联合操作的字段建立索引;

    为常作为查询条件的字段建立索引;

    限制索引的数目,索引越多,更新和插入的效率越低;

    尽量使用数据量少的索引;

    组合索引中的尽量把能过滤掉更多数据的字段放在前面;

    尽量使用前缀来索引,针对长文本,TEXT等类型;

    删除不再使用或者很少使用的索引;

    数据是动态变化中的,索引的使用也需要根据数据的变化而变化。

show processlist 命令

输入show processlist命令后可以看到数据库中所有连接中的session,以及相应SQL的执行情况。

索引设计及使用规范

创建表时,要根据规划中不同表的用途和查询方式建立合适的索引;

编写SQL时,要清楚的知道表有哪些索引,如何才能最大化的利用索引查询,降低查询速度,尤其是数据量超大(超过100万条),或者需要进行多表关联时,本条规则尤其重要;

SQL编写后,要养成使用explain命令查看索引使用情况的习惯,避免一些本应该使用索引的SQL并没有使用索引,或者因为数据问题,使用索引可能还没有不用来的快;

定时查看数据库执行情况,使用show processlist或者开启慢查询,查看慢查询日志,分析执行效率低的SQL;

当数据查询慢,或者数据库IO开销很高的情况,要学会使用show processlist或show full processlist命令查看数据库当前在做什么,哪些SQL执行慢,问题在哪里等等。

支付宝支付
打赏
微信支付

联系我吧

有些人是会淡出你的生活的,有些人刻意不再联系,是因为你知道ta不需要你,或者从一开始就不是同一个初衷在一起度过,不主动联系很久也不见一次面,所有的感情也罢,都会败给时间和距离。因为时间是最无情,给你后悔的时刻却不会给你改过重来的机会。

位置

成都市 四川省 中国

联系电话

028-6406-0000

邮箱

y139w@163.com

企鹅

27572048

网址

https://www.weania.com