資料庫的優化是一項重要的技能,我們希望通過不同的優化方式來達到提高MySQL資料庫性能的目的。部落客在學習資料庫期間基礎的優化知識總結出來,僅供參考,歡迎讨論和指正。
1優化查詢
1.1 索引對查詢速度的影響
索引可以快速定位表中的某條記錄,使用索引可以提高資料庫的查詢速度,進而提高資料庫的性能。
注意以下幾點:
索引會使得插入速度變慢;
如果查詢語句中使用LIKE關鍵字,隻有%放置在非首位索引才會被使用;
如果查詢語句中使用多列索引,隻有查詢條件使用了第一個字段才會使用索引);
如果查詢語句中有OR關鍵字,需要兩個條件都是索引才能使用索引。
1.2 優化子查詢
子查詢是在我們的查詢中使用很頻繁,子查詢可以使得我們的查詢很靈活,但是因為它在查詢過程中,MySQL需要為内層查詢語句的查詢結果建立一張臨時表,外層在查詢臨時表中的記錄。查詢結束後,還需要撤銷臨時表。由此可見,子查詢會使得性能降低。是以推薦在查詢中多使用連接配接查詢。
1.3 将字段很多的表分解
我們在查詢中很有可能隻需要查詢某些特定的字段,比如我們查詢學生表格,更多的是關心學生的學号、姓名和學院等基本資訊,對其生日家庭住址等字段查詢頻率很低。是以我們将高頻查詢的字段提取到新的表中,達到提高查詢作用。
1.4 增加中間表
多表查詢過程會降低MySQL的查詢速度,我們可以通過建立中間表來提高查詢速度。通過分析經常需要同時查詢的這些表中的極端,将這些極端建立一個中間表,并從原表中的資料插入,下次查詢我們隻需要查詢中間表資料即可,達到提高性能的目的。
2 優化插入記錄的速度
2.1 禁用索引或者禁用唯一性檢查
插入記錄的時候,索引、唯一性校驗都會影響插入記錄的速度,是以我們在權衡查詢插入速度的條件下,合理地禁用索引或者禁用唯一性檢查。
2.2 優化INSERTY語句
插入多條語句我們希望一個INSERT插入多條記錄,因為這樣可以減少與資料庫之間的連接配接操作,性能更加。
3分析表、檢查表和優化表
分析表主要分析關鍵字的分布,檢查表主要是檢查表是否存在錯誤,優化表的主要作用是消除删除或者更新造成的空間浪費
4 優化伺服器硬體
通俗點,就是買買買高配電腦,提升硬體條件
5 優化MySQL的參數
記憶體中會為MySQL儲存部分的緩存區,可以通過合理地設定MySQL中的配置檔案中緩存區的大小來提高資料庫的性能。