登录
首页 >  数据库 >  MySQL

浅析mysql存大文本选varchar还是text

来源:SegmentFault

时间:2023-02-16 15:34:53 385浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个数据库开发实战,手把手教大家学习《浅析mysql存大文本选varchar还是text 》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

最近遇到一个问题:mysql 建表的时候,一个大的文本,是varchar还是text。
mysql 新版varchar 最大长度已经支持到65535了,跟text一样。
在占用存储长度上,如果varchar(M) M mysql 官网给的区别:
1,如果该字段创建索引,text必须自定索引前缀长度,varchar可以不用。(ps:varchar实际使用中,最好也指定前缀长度)
2,text 没有 default 值。
还有一个就是:
Instances of BLOB or TEXT columns in the result of a query that is processed using a temporary table causes the server to use a table on disk rather than in memory because the MEMORY storage engine does not support those data types
带text字段的sql,如果需要用到临时表的时候,只能在磁盘创建,不能在内存创建。
这个应该是最大的区别了,会影响到性能。其他的应该没啥了,如果遇到再来补充。

只要 select 子句中包含 blob 类型字段,就会影响 MySQL 对于排序操作的优化。
select 字段列表里包括 blob 类型字段(text 系列字段、blob 系列字段都属于 blob 类型字段),排序时只能使用 这种类型的排序,要先查从存储引擎查出排序字段和主键 ID,然后再根据主键 ID 去存储引擎查询需要返回给用户的其它字段,这有点类似回表的意思。
blob 类型字段不能使用 这 2 种对于排序的优化。

结论:区别很小,但是能选varchar 还是用varchar。

理论要掌握,实操不能落!以上关于《浅析mysql存大文本选varchar还是text 》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表