事務。索引。sql優化。常見配置。儲存引擎。mvcc。4個隔離級別。
悲觀鎖:假定會發生併發衝突,遮蔽一切可能違反資料完整性的操作樂觀鎖:假設不會發生併發衝突,只在提交操作時檢查是否違反資料完整性。
事務在啟動的時候會維護乙個活躍(還未提交)的事務列表,4個特性
4個隔離級別(由低到高)
髒讀:讀取到未提交的事務
不可重複讀:前後多次讀取,資料內容不一致
幻讀:乙個事務在前後兩次查詢同乙個範圍的時候,後一次查詢看到了前一次查詢沒看見的行(資料總總量不一致)
儲存引擎
myisam 適合於一些需要大量查詢的應用,但其對於有大量寫操作並不是很好。甚至你只是需要update乙個字段,整個表都會被鎖起來,而別的程序,就算是讀程序都無法操作直到讀操作完成。另外,myisam 對於 select count(*) 這類的計算是超快無比的。
innodb 的趨勢會是乙個非常複雜的儲存引擎,對於一些小的應用,它會比 myisam 還慢。他是它支援「行鎖」 ,於是在寫操作比較多的時候,會更優秀。並且,他還支援更多的高階應用,比如:事務。
加速查詢的資料結構。b+樹特徵b樹 mongo的索引
b+樹 mysql的索引
加入幾列隱藏字段,資料行的版本號(db_trx_id),刪除版本號(db_roll_pt)
在讀取資料的時候,會有乙個版本號,提交的時候會檢查乙個這個版本號,如果大於當初的就允許提交,如果小於,就認為是過期資料,不允許提交。
解決 寫寫 阻塞的問題。
一致性檢視:用於支援 rc 和 rr 隔離級別的實現
mysql相關知識 MySQL相關知識
字串拼接 select from tablename where mydata like concat curdate limit 3 這裡concat是字串拼接,concat mys q l mysql 顯示日期不帶時間的函式,如 2015 05 14 curdate 是日期不算時間 2015 0...
mysql相關知識
1 多路平衡查詢樹 b樹 特點 分叉數 路數 永遠比關鍵字數多1。2 b 樹 特點 關鍵字數量和路數是相等的 它三層就基本能滿足千萬級別的資料儲存 它的新增節點,刪除節點其實演算法比較複雜的,但我認為快應該還是很快的!問題 a 為什麼主鍵不建議使用uuid或身份證號碼等無序的字段呢?聚集索引 邏輯順...
mysql 相關知識
日期型別 year yyyy 1個位元組 time hh mm ss 3個位元組 date yyyy mm dd 3個位元組 datetime yyyy mm dd hh mm ss 8個位元組 timestamp yyyy mm dd hh mm ss 4個位元組 非常節約記憶體,所以當你只需要年...