目录
1.MySQL常用存储引擎
(1)
(2)
(3)死锁
2.检查系统支持的存储引擎
3.检查表使用的存储引擎
1.方法一
2.方法2
4.修改存储引擎
1.方法一
2.方法2
3、方法三
1.存储引擎简介
MySQL 中的数据使用各种不同的技术存储在文件中。 每种技术都使用不同的存储机制、索引技术、锁定级别,并最终提供不同的功能和能力。 MySQL 中使用了这些不同的技术和支持功能。 称为存储引擎。
存储引擎是MySQL在文件系统中存储数据所使用的存储方法或存储格式。
1.MySQL常用存储引擎
(1)
(2)
MySQL 数据库中负责执行实际数据 I/0 操作的组件。
在MySQL系统中,存储引擎位于文件系统之上。 数据在保存到数据文件之前,会被传输到存储引擎,然后按照各个存储引擎的存储格式进行存储。
(1)
1)不支持事务或外键约束。 它仅支持全文索引。 数据文件和索引文件分开保存。
2)访问速度快,对交易完整性无要求
3)适合基于查询和插入的应用场景
存储在磁盘上的三个文件中,文件名和表名相同,但扩展名是:
1).frm文件存储表结构定义
2)数据文件的扩展名为.MYD()
3)索引文件的扩展名为.MYI()
表级锁定形式,数据更新时锁定整个表
1)数据库在读写过程中互相阻塞: → 串行操作,按顺序操作,每次读或写时都会锁定整个表。
2)在数据写入过程中会阻塞用户数据的读取,在数据读取过程中也会阻塞用户数据的写入。
3)特点:数据单独写入或读取,过程速度快,占用资源相对较少。
它是表级锁定。 读或写不能同时进行。 当单独执行时,速度很快并且消耗相对较少的资源(相对)。
表支持 3 种不同的存储格式:
1)静态(定长)表
静态表是默认的存储格式。 静态表中的字段都是非可变字段,因此每条记录都是固定长度的。 这种存储方式的优点是存储速度非常快,易于缓存,发生故障时易于恢复; 缺点是它通常比动态表占用更多的空间。 。
固定长度10
存储速度非常快,容器有缓存,故障后很容易恢复
2)动态表
动态表包含可变字段(),记录的长度不固定。 这种存储的优点是占用空间较小。 然而,频繁的更新和删除记录会造成碎片。 需要定期执行语句或-r命令来提高性能,并且可能出现故障时恢复相对困难。
3)压缩表
压缩表是由工具创建的,占用的空间非常小,因为每个记录都是单独压缩的,因此访问开销非常小。
适用场景
1)公司业务不需要交易支持
2)单方面读写大量数据的业务
3)存储引擎不适合数据读写频繁的场景。
4)对较低的业务使用读写并发访问
5)数据修改相对较少的业务
6)对数据业务一致性要求不是很高的业务
7)服务器硬件资源比较差
8):适用于单向任务场景、低并发量、低事务要求的场景。
(2)
1)特点
①支持事务,支持4个事务隔离级别(数据不一致问题)
从 MySQL 5.5.5 版本开始,默认存储引擎为
在 5.5 之前,它是 (isam) 默认值
②读写阻塞与事务隔离级别有关
可以非常有效地缓存索引和数据
表和主键存储在簇中
支持分区和表空间,与数据库类似(5.5》5.6、5.7 8.0以后第三代数据库版本)
支持外键约束。 5.5之前不支持全文索引,5.5之后支持全文索引。
③对硬件资源要求还是比较高的场合
行级锁,但全表扫描仍会是表级锁(),如
表设置 a=1,其中用户喜欢 '%lic%';
当表中的行数没有保存时,比如count() from table;,需要扫描整个表来计算有多少行,但可以简单地读出保存的行数。 需要注意的是,当count()语句中包含where条件时,也需要进行全表扫描。
对于自增长字段,索引必须只包含该字段,但可以与表中的其他字段建立组合索引。
清全表时,是逐行删除,速度很慢。 该表将被重建。
(3)死锁
1):表级锁定
2):行级锁定
当两个请求分别访问/读取2行记录,同时需要读取对方的记录数据时,由于(行锁限制)而发生阻塞。
2.检查系统支持的存储引擎
show engines;
3.检查表1使用的存储引擎 方法1
show table status from库名where name='表名'\G;
2.方法2
use 库名;show create table 表名;
4.修改存储引擎1.方法1
通过alter table修改
use 库名;alter table 表名engine=MyISAM;
2.方法2
通过修改/etc/f配置文件,指定默认存储引擎并重启服务
quit
vim /etc/my.cnf
[mysqld]
default-storage-engine=INNODB
systemctl restart mysqld.service
修改完记得重启mysql服务
注意:此方法只对修改了配置文件并重启mysql服务后新创建的表有效,已经存在的表不会有变更。
3、方法三
通过table建表时指定存储引擎
use库名;
create table 表名(字段1数据类型, ...) engine=MyISAM;
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。