InnoDB 和 MYISAM 的区别
InnoDB 和 MYISAM 是 数据库引擎,也就是数据库表的类型
-
INNODB 现在默认使用
-
MYISAM 早些年默认使用
INNODB 和 MYISAM 的区别
MYISAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 较大,约为MYISAM的两倍 |
-
事务支持:两条sql同时执行,一条成功,一条不成功,那么这段代码还是会失败。
事务是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。程序和事务是两个不同的概念。一般而言:一段程序中可能包含多个事务。(说白了就是几步的数据库操作而构成的逻辑执行单元)
-
数据行锁定:假设有两条sql去查同一张表,需要先锁住这张表,使这两条sql逐个去查,MYISAM就是表锁,而INNODB是行锁,只锁那一行记录
-
全文索引:在一篇文章里找某一个字段
各自的好处:
-
MYISAM 节约空间,速度较快
-
INNODB 安全性高,事务的处理,多表多用户操作
在物理空间存在的位置
所有数据库文件都存在data文件夹下
每个数据库都对应一个文件夹,在文件夹中都是一些文件,所以本质还是文件存储
MySQL引擎在物理文件上的区别
-
INNODB
-
*.frm
-
上一级目录的 ibdata1 文件
-
-
MYISAM
-
*.frm 表结构的定义文件
-
*.MYD 数据文件(data)
-
*.MYI 索引文件(index)
-
设置数据库表的字符集编码
CHARSET=utf8
不设置的话,默认为Latin1,不支持中文
如果不设置,可以在my.ini 文件中配置默认编码
character-set-server=utf8
但是不建议这样设置,因为如果一旦把代码换到另外的电脑,那台电脑没有设置,就会出错。
所以我们在创建表的时候就给他设置字符编码
标签:文件,数据库,支持,INNODB,笔记,MYISAM,InnoDB From: https://www.cnblogs.com/wztblogs/p/16738698.html