MySQL的一些优化方法

1.Max的优化

如果没有索引,max需要检索所有行才能得出结果,这里可以通过建立索引的方式进行优化:

CREATE INDEX idx on products(price); 在products表中对price建立索引

这样,再查询price的最大值就能迅速得出结果。

2.子查询的优化

下列子查询:

SELECT id, name, price FROM products WHERE products.id IN (SELECT prod_id FROM vendors);

可以用join方法进行优化:

SELECT id, name, price FROM products INNER JOIN vendors ON products.id = vendors.prod_id;

但是,如果vendors中含有重复的prod_id,则会返回重复的查询结果。因此,需要增加distinct关键字。

3.Limit的优化

避免使用LIMIT 500, 5等语句,因为会查询505行。当主键(例如id)顺序增加时,可以按照主键排序,并限定为id>500且<=505,这样会只查询出需要的5行结果。

4.水平拆分与垂直拆分

水平拆分是指将数据按照某些字段分成几个结构相同的表进行存储,从而提高查找效率。垂直拆分是指将表的几列拆分出来形成新表,避免表的列数过多。

posted @ 2018-02-23 23:16  右威卫大将军  阅读(158)  评论(0编辑  收藏  举报