您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關有哪些優化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的方式;
慢查詢:指超過指定時間的SQL語句查詢,分析MySQL語句查詢性能的方法除了使explain輸出執行計劃,還可以讓MySQL記錄下查詢超過指定時間的語句。
Xunsearch:免費開源的專業全文檢索解決方案,旨在幫助一般開發者針對既有的海量數據快速而方便地建立自己的全文搜索引擎。全文檢索可以幫助降低服務器的搜索負荷、極大程度的提高搜索速度和用戶體驗。
ElasticSearch:一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。
表引擎 | 優點 | 不足 |
---|---|---|
ISAM | 讀取速度快,且不占用大量內存和存儲資源 | 不支持事務,不能容錯;如果硬盤崩潰了,數據文件就無法恢復(常備份) |
MYISAM | ISAM擴展格式和缺省數據引擎,提供了ISAM里所沒有的索引和字段管理的大量功能,MYISAM使用表鎖 | 不支持事務,不支持外鍵 |
INNODB和BERKLEY(BDB) | 支持事務,支持外鍵 | 數據讀取較慢 |
HEAP | 允許只駐留在內存里的臨時表格,因此比ISAM和MYISAM都快 | 管理的數據都是不穩定的,如果在關機前數據沒保存,那么所有的數據都會丟失(表格用完之后就刪除表格);需要select表達式來選擇和操控數據時非常有用 |
范式 | 特點 |
---|---|
第一范式(1NF) | 具有原子性,即列的信息不可再分【列唯一】 |
第二范式(2NF) | 以第一范式為基礎,數據表的每一個實例或者行,必須要唯一的區分(每行上建主鍵)【行唯一】 |
第三范式(3NF) | 基于第二范式,一個數據庫,不包含已在其他表中的非主鍵列 |
擴:
手機端不支持session和cookie要實現用戶登錄怎么辦?
1.在協議處使用Restful;
2.換token(類似于微信開發時使用的appid );
感謝各位的閱讀!關于有哪些優化MySQL的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。