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=\'小红\';