什么是存储引擎?
数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建,查询,更新和删除数据操作。不同的存储引擎提供了不同的存储机制,索引技巧及特定功能。
存储引擎类型
InnoDB:是事务型数据库的首先引擎,支持事务的安全表(ACID),支持行锁和外键;
MyISAM:拥有较高的插入,查询速度,但不支持事务;
MEMORY:将表中的数据存储在内存中,为查询和引用其他数据提供快速访问;
mysql支持的存储引擎
通过命令我们可以查询mysql支持的存储引擎
mysql> show engines; +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | MyISAM | YES | MyISAM storage engine | NO | NO | NO | | CSV | YES | CSV storage engine | NO | NO | NO | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 9 rows in set (0.02 sec)
不同的存储引擎都有各自的特点,以适应不同的需求,mysql默认的存储引擎是InnoDB;但我们可以根据不同的需求选择不同的存储引擎;比如:
如果需要提供事务支持,并要求实现并发控制,InnoDB是一个很好的选择;
如果数据表主要是用来插入和查询记录,则可选择MyISAM提供较高的处理效率;
如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,则可以将数据保存在内存中的MEMORY引擎中;