MySQL存储引擎与索引
2016-08-07 22:32
232 查看
MySQL各个索引的特性(部分)支持情况表
图 1
有些存储引擎不支持某些索引,你创建索引时指定了不支持索引类型并不会报错,会提示创建成功,此时你应该当心了,MySQL并没有真正的创建索引。
你会发现并没有索引data_dic_dn
从图1中我们可以看出,
InnoDB 支持事务,支持行级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
MyISAM 不支持事务,支持表级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
Memory 不支持事务,支持表级别锁定,支持 B-tree、Hash 等索引,不支持 Full-text 索引;
NDB 支持事务,支持行级别锁定,支持 Hash 索引,不支持 B-tree、Full-text 等索引;
Archive 不支持事务,支持表级别锁定,不支持 B-tree、Hash、Full-text 等索引;
可以使用 SHOW ENGINES 语句查看你的 MySql Server 所支持的存储引擎,比如笔者用于本机测试的 5.6.25-log Win 版的查看结果如下:
可以看出,InnoDB 是该版本 MySql 的默认存储引擎,也只有 InnoDB 能够支持事务、行级别锁定、外键;支持的 MEMORY 是基于哈希的,数据都存放于内存,适用于临时表。没有看到既支持事务又支持哈希索引的 NDB 的身影。
图 1
有些存储引擎不支持某些索引,你创建索引时指定了不支持索引类型并不会报错,会提示创建成功,此时你应该当心了,MySQL并没有真正的创建索引。
ALTER TABLE data_dict ADD INDEX data_dict_dn USING HASH (data_name); SHOW INDEXES FROM data_dict;
你会发现并没有索引data_dic_dn
从图1中我们可以看出,
InnoDB 支持事务,支持行级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
MyISAM 不支持事务,支持表级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
Memory 不支持事务,支持表级别锁定,支持 B-tree、Hash 等索引,不支持 Full-text 索引;
NDB 支持事务,支持行级别锁定,支持 Hash 索引,不支持 B-tree、Full-text 等索引;
Archive 不支持事务,支持表级别锁定,不支持 B-tree、Hash、Full-text 等索引;
可以使用 SHOW ENGINES 语句查看你的 MySql Server 所支持的存储引擎,比如笔者用于本机测试的 5.6.25-log Win 版的查看结果如下:
可以看出,InnoDB 是该版本 MySql 的默认存储引擎,也只有 InnoDB 能够支持事务、行级别锁定、外键;支持的 MEMORY 是基于哈希的,数据都存放于内存,适用于临时表。没有看到既支持事务又支持哈希索引的 NDB 的身影。
相关文章推荐
- mysql 笔记 六 存储引擎 事务 索引 存储过程
- mysql存储引擎与索引
- Python--MySql(主键的创建方式、存储引擎、存储过程、索引、pymsql)
- mysql系列之2------数据类型,索引,键,存储引擎
- 运维之mysql篇------2. MySQL 索引类型 、 MySQL 存储引擎
- mysql innodb存储引擎的聚集索引
- 【MySQL】MySQL存储引擎以及索引
- 滴滴面试总结之MySQL存储引擎以及索引原理
- mysql的存储引擎innodb、myisam对插入影响和索引对插入的影响
- 02: MySQL 索引类型 、 MySQL 存储引擎
- MySQL外键及级联删除 && 表的存储引擎与创建索引 && 删除数据库和表
- MySQL学习笔记——存储引擎的索引特性
- Mysql(四)- 存储引擎和事务,备份和恢复,索引,存储过程
- mysql中常见的存储引擎和索引类型
- mysql存储引擎、索引及事务
- mysql存储引擎及索引
- mysql中索引,触发器,事务,存储引擎的理解
- mysql的存储引擎类型和索引类型
- Mysql(二)-索引、存储引擎
- MYSQL优化(二):索引优化、存储引擎优化、表结构优化等