数据库存储引擎是数据库底层软件组织,数据库管理系统
DBMS使用数据引擎进行创建、查询、更新和删除数据。 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。不同的数据库管理系统都支持多种不同的数据引擎。MySQL数据库的核心就是存储引擎。在MySQL中不需要在整个服务器中使用同一个数据库引擎,针对具体的表可以使用不同的数据库引擎。
MyISAM。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一MySQL默认引擎,不支持全文索引(5.6以后开始支持)、支持行级锁、速度快、性能好;要提供提交、回滚、崩溃恢复能力的事务安全(ACID兼容)能力,并要求实现并发控制,InnoDB最佳INSERT和SELECT操作,可选择Archive,Archive支持高并发的插入操作,本身是非事务安全的。Archive非常适合存储归档数据,如记录日志信息可以使用Archive一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能
-- 查看数据库版本
mysql --version
-- 查看支持的引擎
show engines;
-- 查看数据库引擎
show variables like "storage_engine";
-- 创建表的时候指定数据库引擎
create table test (name varchar(5)) ENGINE=MyISAM;
-- 修改表的引擎
alter table test engine=InnoDB;ACID事务,实现了四种隔离级别MySQL后台的完整数据库系统,MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引Innodb引擎会提升效率。select语句会扫描全表。B+tree的索引结构,insert和更新update操作会锁定整个表,效率低下
select count(*) from table 时,只需要直接读取已经保存好的值,而不需要进行全表扫描
MyISAM是首选