mysql数据库性能调优
1.order by 的列名,若没有作为查询结果列,那在order by 该列时,就不能使用该列的索引进行排序
2.limit 50,5 分页机制,导致的性能问题
limit 50,5 指:从第51行开始取5个数.但是该方式为了取到5行数据,需要也对1到50行的数据进行进行处理,为了避免这种方式的影响,可以如下实现
betwenn A>50 and A<56;这样通过A的索引,就能直接获取到想要的5行数据
3.组合索引的最左原则:
CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `cid` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `name_cid_INX` (`name`,`cid`), KEY `name_INX` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8
执行1:
EXPLAIN SELECT * FROM student WHERE name=\'小红\';
执行2:
EXPLAIN SELECT * FROM student WHERE cid=1;
EXPLAIN SELECT * FROM student WHERE cid=1 AND name=\'小红\';