mysql 事务 注意 优化_MySQL日常SQL优化注意事项
1.在where條件中避免雙百分號(hào)“%col%”
在MySQL的SQL查詢條件中使用“%col%”無(wú)法使用索引而進(jìn)行全表掃描影響查詢效率
2.避免函數(shù)出現(xiàn)在where條件中
例:where?year(‘a(chǎn)ctivedate’)=?‘2018’在條件中使用函數(shù)即使該字段有索引,執(zhí)行計(jì)劃也不會(huì)使用索引而進(jìn)行全表掃描
3.避免數(shù)據(jù)類型不一致
執(zhí)行查詢操作的時(shí)候,在where條件中使用與字段類型相同的值,盡量避免讓MySQL執(zhí)行轉(zhuǎn)化操作,
例:activedate?
4.讀取適當(dāng)?shù)挠涗浖靶枰淖侄?#xff0c;避免select?*?from?tab_name
5.分組統(tǒng)計(jì)時(shí)可以禁止排序
MySQL默認(rèn)情況下對(duì)所有g(shù)roup?by的字段進(jìn)行排序,如果查詢包括group?by?又不需要排序操作可以禁止order?by?null
6.減少使用子查詢或者不使用子查詢,可以用join代替
7.創(chuàng)建表的時(shí)候選擇合適的字段屬性,盡量讓字段not?null,這樣數(shù)據(jù)庫(kù)在執(zhí)行查詢的時(shí)候不用比較null值
8.在執(zhí)行DML(update、insert、delete)操作的時(shí)候使用事務(wù)維護(hù)數(shù)據(jù)的完整性
begin;
DML語(yǔ)句;
commit;
9.鎖定表,當(dāng)進(jìn)行批量操作的時(shí)候使用事務(wù)會(huì)鎖定數(shù)據(jù)庫(kù),這時(shí)如果有大量的用戶訪問(wèn)會(huì)造成延遲,可以用鎖定表來(lái)代替事務(wù)
lock?table?write?select?col1,col2?from?tab_name.....
update?...;unlocktables;
10.合理使用索引
索引是提高數(shù)據(jù)庫(kù)性能的有效方法,但創(chuàng)建索引要合理,避免建在大量重復(fù)值的字段上。在where、join、order?by等字段上合理創(chuàng)建索引來(lái)提高性能。
以上個(gè)人總結(jié)供參考,歡迎指正!
總結(jié)
以上是生活随笔為你收集整理的mysql 事务 注意 优化_MySQL日常SQL优化注意事项的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 什么是子宫内膜不孕症
- 下一篇: mysql所有班级名称和人数_mysql