mysql查詢慢,如何優化mysql


思路:

1、服務器硬件優化,比如機械硬盤換成固態硬盤,更換CPU,增加運行內存
2、mysql服務器優化,window服務器換成linux服務器,不過一般企業級標配都是linux
3、sql本身優化,利用關聯查詢,連接等,避免子查詢嵌套
4、反范式設計優化
5、索引優化

 

其中4、反范式設計優化,允許存在適當冗余,通俗說使用表空間換取查詢時間

數據庫設計三大范式:

一、第一大范式

1、數據庫表中的所有字段都只具備單一屬性

2、單一屬性的列是由基本數據類型構成

3、設計出來的表都是二維表

二、第二大范式

1、要求表中只有一個業務主鍵,符合第二范式的表不能存在非主鍵列只對部分主鍵的依賴關系,一般處理事加中間表

三、第三大范式

1、指每一個非主鍵屬性既不部分依賴於也不傳遞依賴於業務主鍵,在第二大范式的基礎上解決了非主鍵對主鍵的傳遞依賴

優點:減少字段冗余,提高新增、修改、刪除效率
缺點:會對查詢不友好,增加查詢表的數量

阿里JAVA編程規范中也提到,字段允許適當冗余,以提高查詢性能,但必須考慮數據一致,冗余字段應遵循:

1、不是頻繁修改的字段

2、不是varcahr超長的字段,更不能是text字段

3、不是唯一索引的字段

舉例:商品類目名稱使用頻率高,字段長度短,名稱基本不變,可在相關聯的表中冗余存儲類目名稱字段,避免關聯查詢

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM