数据表类型(存储引擎)
常见引擎比对 特点 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