Mysql 掌握要點

1. 引擎

InnoDB與MyISAM的最大不一樣有兩點:一是支持事務(TRANSACTION);二是採用了行級鎖。
行級鎖和表級鎖原本就有許多不一樣之處,另外,事務的引入也帶來了一些新問題。

1.1 InnoDB 支持事務

 

1.2 MyISAM 支持全文索引

2. 分庫分表

  分表:http://blog.sina.com.cn/s/blog_6e322ce70100zs9a.htmlhtml

2.1 Cobar

2.2 Mycat

3. SQL優化

MySQL大表優化方案數據庫

 

3.1 索引

3.1.1 主鍵索引

3.1.2 組合索引

3.2 expalin

3.3 存儲過程

4. SQL注入

4.1 使用#而不是用$

5. 事務隔離級別(ACID)

  定義:所謂事務,它是一個操做序列,這些操做要麼都執行,要麼都不執行,它是一個不可分割的工做單位。併發

  ACID,是指在可靠數據庫管理系統(DBMS)中,事務(transaction)所應該具備的四個特性:優化

  原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability).這是可靠數據庫所應具有的幾個特性.下面針對這幾個特性進行逐個講解..net

5.1 原子性

  原子性是指事務是一個不可再分割的工做單位,事務中的操做要麼都發生,要麼都不發生。日誌

5.2 一致性

  一致性是指在事務開始以前和事務結束之後,數據庫的完整性約束沒有被破壞。這是說數據庫事務不能破壞關係數據的完整性以及業務邏輯上的一致性。htm

5.3 隔離性

  多個事務併發訪問時,事務之間是隔離的,一個事務不該該影響其它事務運行效果。blog

  事務之間的相互影響分爲幾種,分別爲:髒讀,不可重複讀,幻讀(虛讀),丟失更新索引

5.4 持久性

  持久性,意味着在事務完成之後,該事務所對數據庫所做的更改便持久的保存在數據庫之中,並不會被回滾。事務

  事務的(ACID)特性是由關係數據庫管理系統(RDBMS,數據庫系統)來實現的。數據庫管理系統採用日誌來保證事務的原子性、一致性和持久性。日誌記錄了事務對數據庫所作的更新,若是某個事務在執行過程當中發生錯誤,就能夠根據日誌,撤銷事務對數據庫已作的更新,使數據庫退回到執行事務前的初始狀態。

  數據庫管理系統採用鎖機制來實現事務的隔離性。當多個事務同時更新數據庫中相同的數據時,只容許持有鎖的事務能更新該數據,其餘事務必須等待,直到前一個事務釋放了鎖,其餘事務纔有機會更新該數據。

6. 鎖

表鎖 行鎖 http://www.cnblogs.com/chenqionghe/p/4845693.html

6.1 表鎖

6.2 行鎖

6.3 樂觀鎖

樂觀鎖 悲觀鎖 http://www.cnblogs.com/zhiqian-ali/p/6200874.html

6.4 悲觀鎖

相關文章
相關標籤/搜索