說一下mysql中儲存引擎的使用場景

2021-09-25 16:36:20 字數 1191 閱讀 9801

不支援事務,適用於選擇密集型,插入密集型, mysql 預設的引擎

該引擎基於isam,除了提供isam所沒有的索引和字段管理等大量功能

myisam還使用一種表鎖機制來優化多個併發讀寫操作,但需要經常執行optimize table命令,來恢復被更新機制

所浪費的空間,否則碎片也會隨之增加,最終影響資料訪問效能。

還有一些有用的擴充套件,例如用來修復資料庫檔案的myisam chk工具和用來恢復浪費空間的 myisam pack工具

myisam強調了快速讀取操作,主要用於高負載的select,這可能也是mysql深受web開發的主要原因:在web開發中

進行的大量資料操作都是讀,所以大多數虛擬主機提供商和internet平台提供商(internet presence provider

,ipp)只允許使用myisam格式。

myisam型別的表支援三種不同的儲存結構:靜態型、動態型、壓縮型。

靜態表(預設的儲存格式) 表中的字段都是非變長字段,這樣每個記錄都是固定長度的,這樣儲存

優點:非常迅速,易快取,出現故障容易恢復

缺點:占用的空間通常比動態表多。靜態表在資料儲存時會根據列定義的寬度定義補足空格,但是在訪問的時候並

不會得到這些空格,這些空格在返回給應用之前已經去掉。同時需要注意:在某些情況下可能需要返回欄位後的

空格,而使用這種格式時後面到空格會被自動處理掉。

動態表 包含變長字段,記錄非固定長度的

優點:占用空間較少

缺點:頻繁更新刪除記錄會產生碎片,需要定期執行optimize table或myisamchk -r改善效能,並且出現故障的時

候恢復相對比較困難

壓縮表 由myisamchk工具建立,佔據非常小空間,因為每條記錄都是被單獨壓縮,所以只有非常小的訪問開支

適用於更新密集型,支援事務,自動災難恢復,行鎖,外來鍵

該儲存引擎為mysql表提供了acid事務支援、系統崩潰修復能力和多版本併發控制(即mvcc multi-version

concurrency control)的行鎖

支援自增長列(auto_increment),自增長列的值不能為空,如果在使用的時候為空則自動從現有值開始增值,如

果有但是比現在的還大,則直接儲存這個值

支援外來鍵(foreign key) ,外來鍵所在的表稱為子表而所依賴的表稱為父表。

該引擎在5.5後的mysql資料庫中為預設儲存引擎。

說一下JS的hasOwnProperty

for in的時候,它會把物件的屬性 包括原型的屬性 遍歷一遍 例如 有這麼一段 var array array.push 1 array.push 2 array.push 3 for var i in array 此時會輸出什麼呢?當然是0 1 1 2 2 3 但是如果在for in之前加上ar...

說一下事務的特性

如果資料庫聲稱支援事務的操作,那麼該資料庫必須要準備以下四個特性 列表內容 1 原子性 原子性是指事務包含的所有對資料庫的操作要麼全部成功,要麼全部失敗,因此可以理解事務的操作如果成功就必須要完全應用到資料庫,如果操作失敗則不能對資料庫有任何的修改 2 一致性 一致性是指事務必須使資料庫從乙個一致性...

說一下ElasticSearch中文件的寫流程

document寫入原理 buffer segment commit segment merge es為了實現搜尋的近實時,也是做了很多的設定。結合了記憶體buffer os cache disk三種儲存,盡可能的提公升搜尋能力。那麼在document寫入index的時候,就有其獨特的寫流程。es的...