MySQL数据库中的存储引擎

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36952611/article/details/73436738
与其他数据库软件不同,MySQL数据库提供了一种名为存储引擎的概念。存储引擎是MySQL数据库管理系统的一个重要特征,在具体开发中,为了提高MySQL数据库管理系统的使用效率和灵活性,可以根据实际情况来选择存储引擎。简单的说数据库是用一张张表来存储信息的,那么必然就会存在有的表简单,有的表复杂,有的表读取速度比较快但插入数据比较慢。因为在存储引擎指定了表的类型,即如何存储和索引数据、是否支持事务等,同时也决定了表在计算机中的存储方式。那么接下来我们来看看MySQL数据库中有哪些存储引擎:
show engines;
show engines \g
show engines \G   //这种方式比较友好

这里写图片描述这里写图片描述
MySQL数据库支持9种存储引擎(不同版本有所不同)。Engine表示存储引擎名称;Support表示MySQL数据库管理系统是否支持该存储引擎,default默认支持的存储引擎;Comment关于存储引擎的评论;Transactions是否支持事务;XA存储引擎所支持的分布式是否符合XA规范;Savepoints是否支持事务处理中的保存点。
这里写图片描述

使用show create table t_user;可以查看创建表的存储引擎

这里写图片描述

使用show table status like 't_user' \G 显示当前表的信息

设置表的存储引擎

     假设要创建一个名为user的表,此表包括id,用户名username和性别sex三个字段,并且要设置表类型为merge。则可用如下的方式创建此数据表,
create table user(
  id int not null auto_increment,
  username char(20) not null,
  sex char(2),
  primary key(id)
) engine=merge
*** 修改存储引擎,可以用命令Alter table tableName engine =engineName;

选择存储引擎

介绍三种存储引擎的应用场合和使用建议。
*MyISAM存储引擎:由于该存储引擎不支持事务、也不支持外键,所以访问速度比较快。因为对事务完整性没有要求并以访问为主的应用场合适用。
*InnoDB存储引擎:由于该存储引擎在事务上有所优势,即支持具有提交、回滚和崩溃恢复的能力的事务安装,所以比MyISAM存储引擎占用更多的磁盘空间。因此需要进行频繁的更新、删除操作,同时还对事务的完整性要求比较高,需要实现并发控制,此时适合使用。
*MEMORY存储引擎:该存储引擎使用内存来存储数据,因此该存储引擎的数据访问速度快。但安全上没有保障。如果应用中设计数据比较小,需要进行快速访问,则适合使用。

猜你喜欢

转载自blog.csdn.net/qq_36952611/article/details/73436738