儲存引擎其實就是一套檔案系統,關於如何實現儲存資料,如何為儲存的資料建立索引以及支援增刪改查操作
可以使用show engines;命令來檢視mysql支援的儲存引擎
使用==show variables like 『%storage_engine』==來檢視預設的儲存引擎,可以看到目前mysql支援的預設儲存引擎是innodb
myisam儲存引擎是mysql5.5版本之前的預設儲存引擎
myisam型別的表支援三種不同的儲存結構:靜態型、動態型、壓縮型
innodb支援事務,myisam不支援事務,對於innodb每一條sql語言都預設封裝成事務(事務是資料庫區別於檔案系統的重要特性之一,事務會把資料庫從一種一致性狀態轉換成另外一種一致性狀態,在資料庫提交時,可以確保要麼所有修改都已儲存,要麼所有修改都不儲存),自動提交
innodb支援外來鍵,而myisam不支援,對於乙個包含外來鍵的innodb表轉為myisam會失敗innodb是聚集索引,使用b+tree作為索引結構,資料檔案是和主鍵索引繫結在一起的,myisam是非聚集索引,也是使用b+tree作為索引結構,索引和資料檔案是分離的,索引儲存的是資料檔案的指標,也就是說,innodb的b+tree索引的葉子節點就是資料檔案,輔助索引的葉子節點是主鍵的值,而myisam的b+tree主鍵索引和輔助索引的葉子節點都是資料檔案的位址指標
innodb不儲存表的具體行數,執行slect count(*)from table時需要全表掃瞄。而myisam用乙個變數儲存了整個表的行數,執行上述語句時只需要讀出該變數即可
myisam**可以被壓縮後進行查詢操作innodb支援表級鎖,行級鎖(預設),而myisam支援表級鎖innodb必須要有主鍵,且主鍵索引只有乙個,如果沒有設定主鍵索引,則選擇乙個唯一索引作為主鍵,如果還是沒有唯一索引,則隱藏的建立乙個主鍵索引。在innodb中,通過輔助索引需要查詢兩次,先通過輔助索引查詢到主鍵,然後再通過主鍵查詢到資料。myisam可以沒有主鍵
mysql 不用怕面試題 MySQL 面試題
資料庫事務的四個特性及含義原子性 atomicity 一致性 correspondence 隔離性 isolation 永續性 durability 原子性 整個事務中的所有操作,要麼全部完成,要麼全部不完成。事務在執行過程中發生錯誤,會被回滾 rollback 到事務開始前的狀態,就像這個事務從來...
mysql資料結構面試題 MySQL 面試題
mysql 的一些面試題,有的是平時聊到的,有的是聽別人說的,有的是工作中遇到的,特此彙總一下,有問有答。一條 sql 查詢語句執行流程?1 聯結器。客戶端和伺服器 tcp 握手後,驗證使用者名稱密碼。使用者名稱密碼通過後,聯結器會到許可權表中查詢你擁有的許可權。之後這個連線裡面的許可權判斷邏輯,都...
MySQL面試題 經驗
1 引數檔案 my.cnf 2 日誌檔案,包括錯誤日誌 查詢日誌 慢查詢日誌 二進位制日誌 3 mysql表檔案 用來存放 mysql 表結構的檔案,一般以 frm 為字尾 4 socket檔案 當用 unix 域套接字方式進行連線時需要的檔案 5 pid檔案 mysql 例項的程序 id檔案 6 ...