《MYSQL教程mysql索引优化实例分享》要点:
本文介绍了MYSQL教程mysql索引优化实例分享,希望对您有用。如果有疑问,可以联系我们。
mysql索引优化的例子:
某个sql语句后出现大量的lock,有很多其他查询被阻塞.当前表的索引布局.
发现这个问题是show processlist结合slow query log发现的.
MYSQL入门
执行的SQL语句:
MYSQL入门
这个用户有9W多行的数据,使用explain分析sql执行过程,耗时8秒,使用的索引是idx_t_slide_fadd_time.
等于是先依照全局排序在去找数据.MYSQL入门
经过阐发后强制使用索引Fuser_id,让MYSQL先找到用户在处理.强制使用索引用use index
MYSQL入门
速度提升到2秒,虽然还是慢,但已不是那么严重了.MYSQL入门
mysql索引优化如果使用联合索引将Fuser_id,Fadad_time字段放到一起做索引.速度超快,提升效果明显.
MYSQL入门
下面介绍下mysql索引的用处.MYSQL入门
MySQL索引在MySQL数据库中,可以有效提高查询的效率,尤其是查询数据量非常年夜时,效果更为明显,往往能使查询速度加快成千上万倍.MYSQL入门
MySQL索引作用MYSQL入门
在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够年夜年夜提高查询效率.特别是当数据量非常年夜,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍.MYSQL入门
例如,有3个未索引的表t1、t2、t3,分别只包括列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示.MYSQL入门
SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3
此查询结果应该为1000行,每行包括3个相等的值.在无索引的情况下处理此查询,必须寻找3个表所有的组合,以便得出与WHERE子句相配的那些行.而可能的组合数目为1000×1000×1000(十亿),显然查询将会非常慢.MYSQL入门
如果对每个表进行索引,就能极大地加速查询进程.
利用索引的查询处理如下.
1,从表t1中选择第一行,查看此行所包括的数据.
2,使用表t2上的索引,直接定位t2中与t1的值匹配的行.类似,利用表t3上的索引,直接定位t3中与来自t1的值匹配的行.
3,扫描表t1的下一行并重复前面的过程,直到遍历t1中所有的行.
在此情形下,仍然对表t1执行了一个完全扫描,但能够在表t2和t3上进行索引查找直接取出这些表中的行,比未用索引时要快一百万倍.MYSQL入门
利用MySQL索引,MySQL加速了WHERE子句满足条件行的搜索,而在多表连接查询时,在执行连接时加快了与其他表中的行匹配的速度.
分享:Mysql索引优化的技巧
深入懂得Mysql的列索引和多列索引
了解 MySQL 主键与索引的联系与区别
mysql性能优化之索引优化MYSQL入门
欢迎参与《MYSQL教程mysql索引优化实例分享》讨论,分享您的想法,维易PHP学院为您提供专业教程。