1. 程式人生 > >MySQL的一些優化方法

MySQL的一些優化方法

name 避免 mit index 所有 提高 如果 索引 pri

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.水平拆分與垂直拆分

水平拆分是指將數據按照某些字段分成幾個結構相同的表進行存儲,從而提高查找效率。垂直拆分是指將表的幾列拆分出來形成新表,避免表的列數過多。

MySQL的一些優化方法