高效能Mysql讀書筆記(第一章)

來源:互聯網
上載者:User

高效能Mysql這本書,在電腦裡面下載快半年了,一直沒時間看,最終決定在9月份每天花點時間把這本書看完,在這裡記錄一下書中的一些知識點,便於積累吧。

 

第一章 Mysql架構

 第一章講的都是基礎

 一、Mysql邏輯架構一共有三層。

 

 頂層服務主要處理連結處理、授權、認證等。第二層是關鍵包括查詢解析、分析、最佳化、緩衝和內建函數等,還有各種儲存引擎提供功能也集中在這一層,預存程序、觸發器、試圖等。

 

 二、預寫式交易記錄、MVCC (可以百度)

===============百度如下

.預寫式日誌。innodb有自己的記憶體資料緩衝(跟mysql伺服器層的查詢快取不是一回事,該緩衝最大不會超過資料庫的大小,這個我們的應用會比較小應該不會超過5G),寫入的時候可以先寫入記憶體。在寫入交易記錄,這個是順序IO比修改資料的隨機IO要快不少,同時innodb_flush_log_at_trx_commit,該寫入動作不跟事務同步,而是每秒執行一次,進一步提高效能。

innodb_flush_log_at_trx_commit  (這個很管用)


抱怨Innodb比MyISAM慢 100倍?那麼你大概是忘了調整這個值。預設值1的意思是每一次事務提交或事務外的指令都需要把日誌寫入(flush)硬碟,這是很費時的。特別是使用電 池供電緩衝(Battery backed up cache)時。設成2對於很多運用,特別是從MyISAM錶轉過來的是可以的,它的意思是不寫入硬碟而是寫入系統緩衝。日誌仍然會每秒flush到硬 盤,所以你一般不會丟失超過1-2秒的更新。設成0會更快一點,但安全方面比較差,即使MySQL掛了也可能會丟失事務的資料。而值2隻會在整個作業系統
掛了時才可能丟資料。

===================

 三、儲存引擎

 

1、myisam

平台通用,通過簡單的拷貝就可以 儲存為兩個檔案資料檔案和索引檔案

特性:

加鎖與並發、自動修複、手工修複、索引特性(blob和text前500個字元建立相關索引,支援全文索引)

延遲更新索引(delay_key_write)、壓縮的myisam表

 

百度來的

=====================

插入大資料時,有索引會很慢,可以DISABLE KEYS,或者直接在table中加入DELAY_KEY_WRITE

註:

delay_key_write這個參數只對myisam類型表有效
如果你某個表需要經常update操作,這個參數就很管用!
但等delay_key_write使用時,出現斷電或重啟時,會導致在cache的索引update沒來得及更新,所以必須在啟動參數加上 –myisam-recover,或者在conf設定myisam-recover=BACKUP,FORCE。這樣在你啟動mysql的時候會檢查你的 表並同步表和索引.

另外如果修複myisam類表可以在my.cnf中mysqld段設定myisam-recover恢複功能,參數有:default,force,backup,QUICK

http://www.cnblogs.com/zhizhesky/archive/2011/08/22/2149357.html

=======================

 

並發插入 (concurrent_insert)

=============== 百度來的

MyISAM儲存引擎有一個系統變數concurrent_insert,專門用以控制其並發插入的行為,其值分別可以為0、1或2。

·當concurrent_insert設定為0時,不允許並發插入。

·當concurrent_insert設定為1時,如果MyISAM表中沒有空洞(即表的中間沒有被刪除的行),MyISAM允許在一個進程讀表的同時,另一個進程從表尾插入記錄。這也是MySQL的預設設定。

·當concurrent_insert設定為2時,無論MyISAM表中有沒有空洞,都允許在表尾並發插入記錄。

==============

2、myisam merge

myisam的變種,合并表講幾個相同的myisam表合并為一個虛表,記錄日誌和資料倉儲的時候非常有用。

3、innodb

專為交易處理而設計,特別是短期事務,它將所有的資料共同儲存在一個或幾個的資料檔案中,這種資料檔案稱之為資料表空間

使用mvcc機制獲得高並發,預設隔離基本為repeatable read,使用間隙所,防止幻讀。

基於聚鏃索引

4、memory引擎

記憶體表,比myisam快一個數量級,存在記憶體當中,表結構在磁碟上,重啟後資料都會消失

但是使用表級加鎖,只支援較低的寫並發,也不支援blob和text欄位,只支援定長欄位,浪費了一些記憶體

好處:緩衝中間資料、周期性彙總資料,尋找和映射表。

5、archive引擎

只支援select和insert查詢,不支援索引,緩衝了資料寫操作、插入時進行了zlib壓縮,使的磁碟io較小比myisam,支援行級加鎖和專用緩衝區,可以高並發

適用於資料記錄和資料擷取

其他如:csv引擎、federated引擎、blackhole引擎、ndb cluster引擎、falcon引擎、solidDB引擎、pbxt引擎、maria引擎(準備替代myisam)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.