什么是数据库存储引擎?
数据库存储引擎是用于存储、处理和保护数据的核心服务。它控制对数据的访问权限并快速处理事务,满足大多数需要处理大量数据的应用程序的需求。
使用数据库存储引擎可以创建关系数据库,用于联机事务处理或联机分析处理数据。它包括创建用于存储数据的表,以及用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)。
在MySQL中,可以通过以下方式来查看和指定存储引擎:
-
使用命令”show engines;“可以查看MySQL当前使用的存储引擎。
-
使用命令”show variables like ‘%storage_engine%‘;”可以查看MySQL当前默认的存储引擎。
-
使用命令”show create table 表名;“可以查看某个表使用的存储引擎。
MySQL的存储引擎是基于表的还是基于数据库的?
MySQL的存储引擎是基于表的,而不是基于数据库的。
MySQL中如何指定引擎?
在MySQL中,可以通过以下方式来指定存储引擎:
-
在创建表时,可以在create语句的最后加上”engine=存储引擎;”来指定存储引擎。
例如:create table table1(id int(11) primary key auto_increment) engine=MyISAM; -
在修改表时,可以使用”alter table 表名 engine=存储引擎;”来指定存储引擎。
例如:alter table table1 engine=InnoDB;
MySQL支持哪几种执行引擎,有什么区别?
MySQL支持多种存储引擎,常见的有MyISAM、InnoDB、NDB、MEMORY、Archive、Federated和Maria等。它们之间的区别如下:
-
MyISAM:适用于读密集型应用,不支持事务和外键。
-
InnoDB:适用于读写混合型应用,支持事务和外键。
-
NDB:适用于分布式应用,具有高可用性和高性能。
-
MEMORY:将数据存储在内存中,适用于对速度要求较高的临时数据。
-
Archive:适用于存储和检索大量历史数据,不支持索引。
-
Federated:允许在多个MySQL服务器之间共享表。
-
Maria:由MariaDB开发的存储引擎,与InnoDB类似,但具有一些额外的功能和改进。
重点说说,InnoDB和MyISAM有什么区别?
InnoDB和MyISAM是MySQL中比较常用的两个存储引擎。在MySQL 5.5之前的版本,默认存储引擎是MyISAM,而在MySQL 5.5之后的版本,默认存储引擎是InnoDB。
它们主要有以下区别:
-
InnoDB支持事务,而MyISAM不支持事务。
-
InnoDB是聚集索引,而MyISAM是非聚集索引。
-
InnoDB支持外键,而MyISAM不支持外键。
-
InnoDB的最小锁粒度是行锁,而MyISAM的最小锁粒度是表锁。
-
InnoDB不支持FULLTEXT类型的索引(5.6之前不支持全文索引)。
-
InnoDB中不保存表的行数,但是MyISAM只需要简单地读出保存的行数即可。
-
对于自增长的字段,InnoDB中必须包含只有该字段的索引,而在MyISAM表中可以和其他字段一起建立联合索引。
-
当清空整个表时,InnoDB是逐行删除,效率非常低。而MyISAM则会重建表。
原文始发于微信公众号(程序员阿凯):什么是数据库存储引擎?MySQL支持哪几种执行引擎,有什么区别?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/174335.html