數據表類型(存儲引擎)
常見引擎比對 特點 Myisam InnoDB Memory BDB Archive 存儲限制 無窮制 64TB 有 沒有 沒有 事務安然 - 支撐 - 支撐 - 鎖機制 表鎖 行鎖 表鎖 頁鎖 行鎖 B樹索引 支撐 支撐 支撐 支撐 - 哈希索引 - 支撐 支撐 - - 全文索引 支撐 - - - - 集群索引 - 支撐 - - - 數據緩存 - 支撐 支撐 - - 索引緩存 支撐 支撐 支撐 - - 數據緊縮 支撐 - - - 支撐 空間應用 低 高 N/A 低 異常低 內存應用 低 高 中 低 低 批量插入速度 高 低 高 高 異常高 外鍵支撐 - 支撐 - - -
各引擎特點Myisam
mysql默認存儲引擎,在磁盤上存儲成三個文件.frm(存儲表定義).MYD(MYData存儲數據)。MYI(MYIndex存儲索引);
沒有事務支撐,不支撐行鎖外鍵,是以當insert、update會鎖定全部表,效力會低一些,MyIASM中存儲了行數,如不雅表的讀操作弘遠年夜于寫且不須要事務,MyISAM優選。
索引
1.MyISAM引擎索引構造為B+Tree,個中B+Tree的數據域存儲的為實際數據地址即索引和實際數據分開即非集合索引。
2.如圖主鍵索引和幫助索引構造一向只不過主鍵索引請求key獨一。
供給了對數據庫ACID事務支撐場實現SQL標準的四種隔離級別,供給行級鎖和外鍵束縛。Mysql運行時Innodb會在內存中建立緩沖池用于緩沖數據和索引,該引擎不支撐fulltext類型索引且沒有保存表的行數,select count(*) from table 血藥掃全表。
須要事務操作時Innodb首選,鎖力度小,寫操作不會鎖定權標,所以并發高時Innodb引擎效力更高,
比擬Myisam寫處理效力差一些會占用更多的磁盤空間保存數據和索引。
索引
3.MyISAM中索引檢索算法起首安裝B+Tree搜刮算法搜刮索引,如不雅key存在,則掏出data域的值,然后以data域的值為地址,攫取響應數據記錄。Innodb
1.Innodb索引采取B+Tree且Innodb索引文件本身就是數據文件即B+Tree的數據域存儲的就是實際的數據如圖Primary Key即集合索引。這個索引的key就是數據表主鍵,Innodb表本身就是主索引。
2.Innodb幫助索引數據域存儲的是響應的主鍵的值而不是地址,經由過程幫助索引查找時先找到主鍵再經由過程主鍵查找數據。所以主鍵不建議過長不然幫助索引會變得很大年夜。
3.Innodb必須有主鍵如不雅沒有顯示指定Mysql會主動選擇一個獨一標識的數據記錄為主鍵。
4.集合索引按主鍵搜刮效力十分高效,幫助索引必須檢索兩遍。
5.基于Innodb索引構造可以解釋為什么不建議應用過長的主鍵,為什么不建議應用非單調(非遞增)的記錄做主鍵,B+Tree索引構造導致應用非單調做主鍵會相當低效。
常用敕令show engines; 查看當前支撐的引擎和默認引擎
show table status from mytest; show create table tablename;查看數據表引擎
修改默認引擎 my.ini [mysqld]下增長 default-storage-engine=InnoDB
名詞概念ACID: (Atomicity)原子性,要么全部履行要么不履行;(Consistency)一致性,事務的運行不改變數據庫中數據的一致性;(Isolation)自力性,也稱隔離性兩個以上的食物不會出現交錯履行的狀況;(Durability)持久性,事務履行成功后數據持久保存。
BTree 二叉搜刮樹
1.所有非葉子幾點最多有兩個子節點(left right)
2.所有節點存儲一個關鍵字
3.非葉子節點左指針指向小于其關鍵字的子樹,右指針指向大年夜于其關鍵字的子樹
推薦閱讀
5G被業界視為概綾屈性的無線技巧,但作為下一代標準基本之一的高頻譜請求運營商采取與以進步然不合的方法來構>>>詳細閱讀
地址:http://www.17bianji.com/lsqh/37307.html