mysql优化案例

2015-12-26  本文已影响0人  chengcheng

 SQL优化功能可以为您的慢SQL提供索引建议、检测因隐式转换,函数等表达式不能使用索引的情况。请大家参考以下几个例子:

      1.创建表:      

  CREATE TABLE `tb1` (        `c1` int(11) NOT NULL,        `c2` varchar(32) DEFAULT NULL,        `c3` double DEFAULT NULL,        KEY `IDX_C2` (`c2`),        KEY `IDX_C3` (`c3`)        ) ENGINE=InnoDB DEFAULT CHARSET=utf8      2.插入数据:        insert into `tb1`(`c1`,`c2`,`c3`) values        ('1','a1',3.14159), ('2','a2',3.1321), ('3','a3', 3111), ('4','a4', 123), ('5','a5',3.1234), ('6','a6',3.1122), ('7','a7', 4321);============================================================================      

例子1(生成索引建议):      SQL:  SELECT * FROM tb1 where c1 = 1;      建议 :    ALTER TABLE tb1 ADD INDEX IDX_C1 (C1)      原因 :    C1 = 1 能够筛选出一行数据,我们认为这个字段过滤性比较高,所以推荐在C1上创建索引。 ============================================================================     

 例子2(检测隐式转换):      SQL:  SELECT * FROM tb1 where c2 = 1;      建议 :    表达式【tb1.c2 = 1】存在隐式转换,会导致不能使用该列索引,建议使用【tb1.c2 = '1'】。============================================================================     

 例子3(检测函数):      SQL:  SELECT * FROM tb1 where ABS(c3) = 123;      建议 :    表达式【ABS(c3)】的索引列使用函数会导致不能使用该列索引,建议改写该表达式。

上一篇下一篇

猜你喜欢

热点阅读