圖解MySQL學習及思考

來源:互聯網
上載者:User

本文旨在結合自己看書理解,並藉此圖進行說明,如有謬誤,望大家指正,以共同探討為目的,交流學習。

首先介紹一下架構圖的由來:最近看關於mysql方面書籍的一點心得,把文字轉化成圖片而得,方便理解。

我主要從讀、寫、底層磁碟三方面進行闡述:

1、讀操作:

我們知道資料在讀取的時候,需要從磁碟讀到記憶體中,然後再做相應的操作,而在最佳化讀操作的時候,主要想buffer,cache這些進行最佳化:

key_buffer_size 
這個對MyIsam表來說是一個比較重要的參數,一般可以把他設定成記憶體的30%-40%,當然這還要根據具體情況,MyISAM表會使用作業系統的緩衝來快取資料,因此需要留出部分記憶體給它們,很多情況下資料比索引大多了。
 
innodb_buffer_pool_size 
這個對InnoDB來說是一個比較重要的參數,而InnoDB對緩衝更為敏感,MyISAM可以在預設的 key_buffer_size 設定下啟動並執行可以,然而Innodb在預設的 innodb_buffer_pool_size 設定下卻跟蝸牛似的。由於Innodb把資料和索引都緩衝起來,無需留給作業系統太多的記憶體,因此如果只需要用Innodb的話則可以設定它高達 70-80% 的可用記憶體。一些應用於 key_buffer 的規則有 — 如果你的資料量不大,並且不會暴增,那麼無需把 innodb_buffer_pool_size 設定的太大了。
 
table_cache 
表的緩衝,這個佔用系統的資源和記憶體,因為每一個現成都需要開啟一個暫存資料表,所以當串連數大的時候可以加大此值。
 
thread-cache 
線程的緩衝,線程的建立和銷毀開銷可能會很大,所以每個線程的串連和斷開需要,如果程式中活躍的並發串連數和Thread-Created的值比較大,可以稍微設定大一點此值。 【幫客之家 http://www.bkjia.com 】
 
query-cache 
如果應用程式中有大量的讀,可以設定大一點此值,但是也不要太大,因為維護它也需要不少的開銷。一般設定32M-512M即可。
 
sort_buffer_size 
這個是connection級的參數,在每個connection第一次需要使用這個buffer的時候,一次性分配設定的記憶體,此值不是越大越好,如果設定過大,碰上高並發的情況下就會使效能降低,sort_buffer_size 超過2KB的時候,就會使用mmap()而不是 malloc() 來進行記憶體配置,導致效率降低。 
 
mysql暫存資料表 當工作在非常大的表上時,你可能偶爾需要運行很多查詢獲得一個大量資料的小的子集,不是對整個表運行這些查詢,而是讓MySQL每次找出所需的少數記錄,將記錄選擇到一個暫存資料表可能更快些,然後多這些表執行查詢。 mysql伺服器會自動建立內部暫存資料表:該暫存資料表可以是只存在於記憶體的memory暫存資料表,或者是儲存於硬碟的myisam暫存資料表;而且初始建立的memory暫存資料表由於表的增大可能會轉變為myisam暫存資料表——其轉化臨界點由max_heap_table_size和tmp_table_size系統變數的較小值決定的!注意:max_heap_table_size系統變數應用於所有的memory引擎的表,不管是使用者暫存資料表、正常表、或者內部暫存資料表。當然程式也可以建立暫存資料表:create temporary table XX; 當然這是程式控制,建立使用完後再刪除,由程式控制了。

以上是讀操作的一些介紹,接下來是寫操作方面的。

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.