資料庫之執行引擎

2021-09-26 07:20:52 字數 1797 閱讀 4570

#資料庫之執行引擎

myisam

引擎特點:

1.不支援事務

2.只支援表級鎖(資料庫操作表時需要鎖定整張表),鎖定成本小,但併發性不高

3.讀寫相互阻塞,但是讀讀不阻塞

4.只會快取索引,不會快取資料

5.讀取速度快(因為功能相對弱小,占用資源少,鎖粒度粗)

6.不支援外來鍵約束,但支援全文索引

7.myisam是mysql5.5.5前預設的儲存引擎

適用的生產業務場景

1.不需要事務支援的業務(例如銀行轉賬就不行)

2.一般為讀資料比較多的應用,讀寫都頻繁的不適合,讀多或者寫多的都適合

3.讀寫併發訪問相對較低的業務(純讀純寫高併發也可以)(鎖定機制問題)

4.資料修改相對較少的業務(阻塞問題)

5.以讀為主的業務,例如:部落格,**網,資訊資料庫,使用者資料庫,商品庫等業務

6.對資料一致性要求不是很高的業務

7.硬體資源比較差的機器可以使用myisam

小結:單一對資料庫的操作都可以使用myisam,所謂單一就是盡量純讀或者純寫等

引擎調優:

1.設定合適的索引(快取機制)

2.調整讀寫優先順序,根據實際需求確保重要的操作更優先執行

3.啟用延遲插入改善大批量寫入效能(降低寫入頻率,盡可能多條資料一次性寫入)

4.盡量順序操作讓insert操作都寫入尾部,減少阻塞

5.分解時間長的操作,降低單個操作的阻塞時間

6.降低併發數(減少對mysql訪問),某些高併發場景通過應用佇列機制q佇列

7.對於相對靜態(更改不頻繁)的資料庫資料,充分利用query cache或memcached,快取服務可以極大的提高訪問效率。

8.myisam的count只有在全表掃瞄的時候特別高效,帶有其他條件的count都需要進行實際的資料訪問

9.把主從同步的主庫使用innodb,從庫使用myisam引擎(不推薦,但有人這麼使用)

innodb

mysql5.5.5以後的預設儲存引擎為innodb

引擎特點:

1.支援事務:支援4個事務隔離級別,支援多版本讀

2.行級鎖定(更新時一般是鎖定當前行):通過索引實現。全表掃瞄仍然會是表鎖。

3.讀寫阻塞跟事務隔離級別相關

4.具有非常高效的快取特性:能快取索引,也能快取資料

5.整個表和主鍵以cluster方式儲存,組成 一顆平衡樹

6.所有secondary index都會儲存主鍵資訊

7.支援分割槽,表空間,類似oracle資料庫

8.支援外來鍵約束,5.5以前不支援全文索引,以後支援了

9.和myisam 引擎相比,對硬體資源要求較高

小結:事務,行級鎖,外來鍵

適用的生產應用場景:

引擎調優:

1.主鍵盡可能小,避免給secondary index帶來過大的空間負擔

2.避免使用全表掃瞄,因為會使用表鎖

3.盡可能快取所有的索引和資料,提高響應速度,減少磁碟io消耗

4.在大批量小插入的時候,盡量自己控制事務而不要使用autocommit自動提交。

5.避免主鍵更新,因為這會帶來大量的資料移動

有關mysql引擎常見企業面試題:

一、mysql有哪些儲存引擎,各自有什麼特點和區別?

常見的儲存引擎有myisam,innodb,memory等

二、生成環境中應如何選用mysql的引擎?

讀多寫少用myisam,硬體配置不高使用myisam。

支援事務,支援外來鍵需要使用innodb。

在一般的既有讀又有寫的業務中,建議使用innodb引擎,

資料庫MySQL 執行引擎介紹

不支援事務 也不支援外來鍵,優勢是訪問速度快,對事務完整性沒有 要求或者以select,insert為主的應用基本上可以用這個引擎來建立表 支援3種不同的儲存格式,分別是 靜態表 動態表 壓縮表 靜態表 表中的字段都是非變長字段,這樣每個記錄都是固定長度的,優點儲存非常迅速,容易快取,出現故障容易恢...

mysql之資料庫引擎

archive 支援插入和查詢兩種功能。在mysql 5.5以後的版本支援索引。使用 archive引擎建立表,會生成 frm 檔案和 arz 檔案,frm 檔案中儲存表的定義,arz 檔案中儲存表的壓縮後的資料和索引。isam isam是乙個定義明確且歷經時間考驗的資料 管理方法,查詢速度快,並且...

資料庫之儲存引擎

mysql中建立的庫 資料夾 庫中建立的表 檔案 資料庫中的表也應該有不同的型別,表的型別不同,會對應mysql不同的訪問機制,表型別又稱為儲存引擎。sql 解析器 sql 優化器 緩衝池 儲存引擎等元件在每個資料庫中都存在,但不是每 個資料庫都有這麼多儲存引擎。mysql 的外掛程式式儲存引擎可以...