mysql的技術要點 Mysql 鎖技術要點

2021-10-19 01:56:35 字數 1823 閱讀 1995

myisam和innodb的區別 mysql預設採用的是myisam。 myisam不支援事務,而innodb支援。innodb的autocommit預設是開啟的,即每條sql語句會預設被封裝成乙個事務,自動提交,這樣會影響速度,所以最好是把多條sql語句顯示放在begin和commit之間,組成乙個事務去提交。 innodb支援資料行鎖定,myisam不支援行鎖定,只支援鎖定整個表。即myisam同乙個表上的讀鎖和寫鎖是互斥的,myisam併發讀寫時如果等待佇列中既有讀請求又有寫請求,預設寫請求的優先順序高,即使讀請求先到,所以myisam不適合於有大量查詢和修改並存的情況,那樣查詢程序會長時間阻塞。因為myisam是鎖表,所以某項讀操作比較耗時會使其他寫程序餓死。 innodb支援外來鍵,myisam不支援。 innodb的主鍵範圍更大,最大是myisam的2倍。

innodb不支援全文索引,而myisam支援。全文索引是指對char、varchar和text中的每個詞(停用詞除外)建立倒排序索引。myisam的全文索引其實沒啥用,因為它不支援中文分詞,必須由使用者分詞後加入空格再寫到資料表裡,而且少於4個漢字的詞會和停用詞一樣被忽略掉。 myisam支援gis資料,innodb不支援。即myisam支援以下空間資料物件:point,line,polygon,su***ce等。 沒有where的count(*)使用myisam要比innodb快得多。因為myisam內建了乙個計數器,count(*)時它直接從計數器中讀,而innodb必須掃瞄全表。所以在innodb上執行count(*)時一般要伴隨where,且where中要包含主鍵以外的索引列。因為innodb中primary index是和raw data存放在一起的,而secondary index則是單獨存放,然後有個指標指向primary key。所以只是count(*)的話使用secondary index掃瞄更快,而primary key則主要在掃瞄索引同時要返回raw data時的作用較大。

innodb實現了以下兩種型別的行鎖。 共享鎖(s):允許乙個事務去讀一行,阻止其他事務獲得相同資料集的排他鎖。 排他鎖(x):允許獲得排他鎖的事務更新資料,阻止其他事務取得相同資料集的共享讀鎖和排他寫鎖。

mysql 鎖技術要點

標籤:查詢   primary   sam   大量   區別   種類   index   返回   9.png

Mysql 掌握要點

innodb與myisam的最大不同有兩點 一是支援事務 transaction 二是採用了行級鎖。行級鎖和表級鎖本來就有許多不同之處,另外,事務的引入也帶來了一些新問題。分表 mysql大表優化方案 定義 所謂事務,它是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位。a...

mysql索引優化的要點

背景 sql 優化對資料來說是什麼非常重要,sql的索引優化更重中之重,有的人認為索引優化就是簡單加乙個索引,其實這種想法是錯的,索引是涉及到很多知識點,並非大家想得這麼簡單,廢話不多說,馬上開車 一,頭盤 sql語句的五大要素 1,獲得結果集所需訪問的查詢條件 2,定義結果集所需的查詢條件 3,結...

MySQL學習要點(9 10)

執行一條sql語句需要經過一系列流程 儲存過程和函式 就是事先經過編譯並儲存在資料庫中的一段sql語句的集合。使用好處 1 簡化應用開發人員的很多任務作 2 減少資料在資料庫和應用伺服器之間的傳輸 3 提高了資料處理的效率 建立儲存過程 create procedure 儲存過程名 proc par...