MySql数据类型——char和varchar区别以及数据库存储引擎的选择
程序员文章站
2022-04-11 17:06:58
...
1.CHAR 和 VARCHAR 之间的区别
- CHAR 是固定长度字符,VARCHAR 是可变长度字符。
- CHAR 会自动删除插入数据的尾部空格,VARCHAR 不会删除尾部空格。
CHAR 是固定长度,所以它的处理速度比 VARCHAR 的速度要快,但是它的缺点就是浪费存储空间。所以对存储不大,但在速度上有要求的可以使用 CHAR 类型,反之可以使用 VARCHAR类型来实现。
2.存储引擎对于选择 CHAR 和 VARCHAR 的影响
- 对于 MyISAM 存储引擎,最好使用固定长度的数据列代替可变长度的数据列。这样可以使整个表静态化,从而使数据检索更快,用空间换时间。
- 对于InnoDB存储引擎,最好使用可变长度的数据列,因为 InnoDB 数据表的存储格式不分固定长度和可变长度,因此使用 CHAR 不一定比使用 VARCHAR 更好,但由于 VARCHAR 是按照实际的长度存储,比较节省空间,所以对磁盘 I/O 和数据存储总量比较好。
3.数据库存储引擎
# 查询当前数据库的存储引擎
SHOW ENGINES;
可以看到,当前默认存储引擎是MyLSAM可以修改临时默认存储引擎
SET default_storage_engine = InnoDB;
再次查看当前默认存储引擎
SHOW VARIABLES LIKE 'default_storage_engine%';
当前默认存储引擎是InnoDB,如下图
但是当再次重启客户端时,默认存储引擎仍然是 MyLSAM
3.1 如何选择存储引擎
下面是常用存储引擎的特性比对
- 如果应用主要以读取和写入为主,只有少量的更新和删除操作,并且对事务的完整性、并发性要求不是很高,那么选择 MyISAM 存储引擎是非常适合的(Web 数据仓储)
- 如果应用主要以读取和写入为主,只有少量的更新和删除操作,并且对事务的完整性、并发性要求不是很高,那么选择 MyISAM 存储引擎是非常适合的(计费系统、财务系统)
- 数据比较少,且需要进行快速访问,则适合使用 MEMORY 存储引擎
上一篇: 山东省排名前十的本科大学有哪些?附山东最好的几所大学排名
下一篇: 知识点总结
推荐阅读