MySql 存储引擎和索引相关知识总结

2020-06-20 13:59 来源:易采站长站 作者:王旭 点击: 评论:

A-A+

原标题:MySql 存储引擎和索引相关知识总结

存储引擎

什么是数据库存储引擎?

数据库引擎是数据库底层软件组件,不同的存储引擎提供不同的存储机制,索引技巧,锁定水平等功能,使用不同的数据库引擎,可以获得特定的功能

如何查看引擎?

--如何查看数据库支持的引擎
show engines;
​
--查看当前数据的引擎:
show create table 表名\G
​
--查看当前库所有表的引擎:
show table status\G

建表时指定引擎

create table yingqin (id int,name varchar(20)) engine='InnoDB';

修改表的引擎

alter table 表名 engine='引擎名称';

修改默认引擎

vi /etc/my.cnf   (配置文件地址根据安装情况) [mysqld]下面 default-storage-engine=MyIsAM 记得保存后重启服务

MyISAM 与 InnoDB 的区别

MyISAM:支持全文索引(full text);不支持事务;表级锁;保存表的具体行数;奔溃恢复不好。

Innodb:支持事务;以前的版本是不支持全文索引,但在5.6之后的版本就开始支持这个功能了;行级锁(并非绝对,当执行sql语句时不能确定范围时,也会进行锁全表,例如: update table set id=3 where name like 'a%';);不保存表的具体行数;奔溃恢复好。

什么时候选择什么引擎比较好

MyISAM:

不需要用到事务的时候 做很多 count 计算

InnoDB:

可靠性要求高的,或者要求支持事务 想要用到外键约束的时候(MyISAM建立的外键是无效的)​

推荐用 InnoDB

索引

什么是索引?

索引是一个单独的,存储在磁盘中上的数据库结构,它们包含着对数据表里的所有记录的引用指针。使用索引可以快速的找出在某列或多列中有特定值的行。

索引的优点:

通过创建唯一索引,来保证数据库表中的每一行数据的唯一性。 可以加快数据的检索速度。 可以保证表数据的完整性与准确性

索引的缺点:

索引需要占用物理空间。 对表中的数据进行改动时,索引也需要跟着动态维护,降低了数据的维护速度。

索引的常见类型:

index:普通索引 unique:唯一索引 primary key:主键索引 foreign key:外键索引 fulltext: 全文索引 组合索引 

普通索引与唯一索引

什么是普通索引?

普通索引(index)顾名思义就是各类索引中最为普通的索引,主要任务就是提高查询速度。其特点是允许出现相同的索引内容,允许空(null)值

什么是唯一索引?

唯一索引:(unique)顾名思义就是不可以出现相同的索引内容,但是可以为空(null)值

如何创建普通索引或者唯一索引?

【易采站长站编辑:秋军】