天天看點

Mysql性能優化

Mysql性能優化

1、當隻要一行資料時使用limit 1 

查詢時如果已知會得到一條資料,這種情況下加上 limit 1 會增加性能。因為 mysql 資料庫引

擎會在找到一條結果停止搜尋,而不是繼續查詢下一條是否符合标準直到所有記錄查詢完畢。 

2、選擇正确的資料庫引擎 

Mysql中有兩個引擎MyISAM和InnoDB,每個引擎有利有弊。 

MyISAM 适用于一些大量查詢的應用,但對于有大量寫功能的應用不是很好。甚至你隻需要

update一個字段整個表都會被鎖起來。而别的程序就算是讀操作也不行要等到目前update操作完

成之後才能繼續進行。另外,MyISAM對于select count(*)這類操作是超級快的。 

InnoDB的趨勢會是一個非常複雜的存儲引擎,對于一些小的應用會比MyISAM還慢,但是支

持“行鎖”,是以在寫操作比較多的時候會比較優秀。并且,它支援很多的進階應用,例如:事物。 

3. 用not exists代替not in 

Not exists用到了連接配接能夠發揮已經建立好的索引的作用,not in不能使用索引。Not in是最

慢的方式要同每條記錄比較,在資料量比較大的操作紅不建議使用這種方式。 

4. 對操作符的優化,盡量不采用不利于索引的操作符 

如:in not in is null is not null <> 等 

某個字段總要拿來搜尋,為其建立索引: 

Mysql 中可以利用 alter table 語句來為表中的字段添加索引,文法為:alter table 表明 

add index (字段名);