了解MySQL如何最佳化

jacklove
發布: 2018-06-14 15:38:17
原創
1521 人瀏覽過

MySQL最佳化

  • 1.最佳化索引、SQL語句、分析#慢查詢

  • #2.設計表的時候嚴格按照資料庫的設計範式來設計資料庫;

    3.我們也可以將我們的業務架構進行緩存,靜態化與分散式;
  • 4.不用全文索引,使用
  • Xunsearch

    ##,

  • ES
  • 或雲端伺服器上的索引;


    5.如果效率還是不夠好,可以採用主從方式將資料讀寫分開;
  • 6.可以加上memcached緩存,將經常被存取到但不經常變化的資料放至memcached快取伺服器裡面,這樣的話能夠節約磁碟I/O;
  • #7.還可以優化硬件,在硬體層面,我們可以使用更好的一些硬碟(固態硬碟),使用一些磁碟陣列技術(raid0,raid1,raid5)
  • - raid0:最簡單的(兩塊硬體相加100G 100G=200G)
  • - raid1:鏡像卷,把同樣的資料下兩份。可以隨即從A/B裡面讀取,效率更高,硬碟壞了一塊資料也不會遺失;

    - raid5:3塊硬碟,壞了一塊,另外兩塊也能運作。

  • 8.如果還是慢,先不要切分錶,可以使用MySQL內部自帶的表分區技術,將資料分成不同的文件,這樣能夠讓磁碟在讀取的時候效率更高;

  • 9.可以做垂直分錶,將不常用讀取的資料放到另外一個表裡去(節約磁碟I/O);10.資料量特別大,我們優化起來會很困難,這時可以使用資料庫中間件的方式,將資料進行分庫分錶分機器。 (原理:資料路由);


11.此外,還可以採用一些更快的儲存方式,例如NoSQL儲存一些我們需要經常存取的資料(資料庫取出後,再到NoSQL中取出一些其他資料);

12.此外還有一些

表引擎

選擇,參數最佳化還有些相關的小技巧都是最佳化MySQL的方式; ElasticSearch:一個基於Lucene的搜尋伺服器。它提供了一個分散式多用戶能力的全文搜尋引擎,基於RESTful web介面。 ##ISAM 讀取速度快,且不佔用大量記憶體和儲存資源 不支援事務,不能容錯;如果硬碟崩潰了,資料檔案就無法復原(常備份)
慢查詢:指超過指定時間的SQL語句查詢,分析MySQL語句查詢效能的方法除了讓explain輸出執行計劃,也可以讓MySQL記錄下查詢超過指定時間的語句。 Xunsearch:免費開源的專業全文檢索解決方案,旨在幫助一般開發者針對現有的大量資料快速且方便地建立自己的全文搜尋引擎。全文檢索可以幫助降低伺服器的搜尋負荷、極大程度的提高搜尋速度和使用者體驗。
表引擎 優點

MYISAM ISAM擴充格式和預設資料引擎,提供了ISAM裡所沒有的索引和欄位管理的大量功能,MYISAM使用資料表鎖定 INNODB和BERKLEY(BDB) 支援事務,支援外鍵 允許只駐留在記憶體裡的臨時表格,因此比ISAM和MYISAM都快 範式 特徵
不支援事務,不支援外鍵
資料讀取較慢 HEAP
管理的資料都是不穩定的,如果在關機前資料沒保存,那麼所有的資料都會遺失(表格用完之後就刪除表格);需要select表達式來選擇和操控資料時非常有用
##########第一範式(1NF)## ####具有原子性,即###列###的資訊不可再分【列唯一】#############第二範式(2NF)#######以第一範式為基礎,資料表的每一個實例或###行###,必須要唯一的區分(每行上建主鍵)【行唯一】############第三範式(3NF)######基於第二範式,一個資料庫,不包含已在其他表中的非主鍵列############ #

以上是了解MySQL如何最佳化的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!