存储引擎的介绍
- 存储引擎是数据库底层软件组件,数据库管理系统通过存储引擎实现的数据的存储、查询、更新和删除
- 数据库都支持多种不同的存储引擎,根据实际需要对不同的数据选择合适的存储引擎
- 注意:
- 不同的存储引擎提供不同的存储机制、索引技巧和锁定水平,不同的存储引擎还有各自的特定的功能
- mysql的核心组件就是存储引擎,innoDB 是默认的存储引擎
- 在mysql中,不需要对所有的操作都使用同一种引擎,可以根据不同的需求,对不同的表使用不同的引擎
- 几种常用的存储引擎:
- innoDB:mysql默认的存储引擎,支持事务、行级锁和外键,事务型数据库首选引擎
- myisam:是基于Isam建立的存储引擎,拥有较高的插入查询速度,但是不支持事务(ISAM:索引顺序存取法 )
- memory:将表中数据存储到内存中,为查询和引用数据提供快速访问。
- show engines:用来查看数据库支持的引擎和默认的存储引擎。(support的值为yes表示支持该引擎,no表示不支持该引擎,default表示该引擎为默认的存储引擎)
- 临时修改数据库管理系统的存储引擎:SET default_storage_engine= 存储引擎名( 如:set default_storage_engine = MyISAM; # 该设置只对当前会话有效)
MySQL存储引擎的选择
- 下表介绍了不同的存储引擎的特点功能:
| 功能 |
MylSAM |
MEMORY |
InnoDB |
| 存储限制 |
256TB |
RAM |
64TB |
| 支持事务 |
No |
No |
Yes |
| 支持全文索引 |
Yes |
No |
No |
| 支持树索引 |
Yes |
Yes |
Yes |
| 支持哈希索引 |
No |
Yes |
No |
| 支持数据缓存 |
No |
N/A |
Yes |
| 支持外键 |
No |
No |
Yes |
- mysql选择存储引擎的原则
- InnoDB:如果要有提交、回滚的事务安全能力和并发控制能力
- MyISAM:如果数据表主要用来插入和查询数据,则MyISAM会拥有较高的处理效率。
- memory:如果只是临时存放数据,数据量不大,对数据的安全要求不高,可以选择将数据保存在内存的memory引擎中,mysql使用该引擎作为临时表,存放查询的中间结果集
posted @
2020-01-06 13:40
WeiKing
阅读(
102)
评论()
收藏
举报