MYSQL SELECT 不加 text 类型的字段会对读取速度有帮助吗

2021 年 7 月 15 日
 fuxinya

有一文章表,字段有:idtitlecontent等。 其中content字段为text类型,用于存放富文本。

在进行文章列表检索时: SELCT id, title FROM t1

SELECT 不加 content 字段会对查询速度有帮助吗(即:MYSQL 扫描行时会不会连带 content 字段一起读取了)?

考虑到富文本字段一般都好几兆,如果会一起读取,我得考虑把富文本单独放一张表,不然文章一多,读着太慢了。

3044 次点击
所在节点    MySQL
9 条回复
monetto
2021 年 7 月 15 日
个人理解,会的。

MySQL 底层簇族索引是把主键和数据列放在了一起。所以 CPU 其实影响不是很大。
但是富文本的话,恐怕会有一些 IO 压力。
shakoon
2021 年 7 月 15 日
有一定的帮助,但是有限。如果确实用不到的字段那是不应该加到 select 里。
kiracyan
2021 年 7 月 15 日
长文本最好单独放一个表 甚至存文件数据库
fuxinya
2021 年 7 月 15 日
@shakoon 文章详情需要检索 content 。文章列表不用检索 content,我现在就怕 虽然 SELECT 没有 content,mysql 检索时会连 content 也读取了。
fuxinya
2021 年 7 月 15 日
@kiracyan 好的,我还是单独弄个文章详情表吧
ChoateYao
2021 年 7 月 15 日
会的,首先读取数据需要一定时间,其次传输数据也需要一定时间。
littlewing
2021 年 7 月 15 日
innodb 对于超过 768 字节的 varchar text 会单独存储,读的时候可以不读
fuxinya
2021 年 7 月 15 日
@littlewing 感谢。那就是说,超过 768 字节,只 SELECT id, title 时,mysql 不会读 content
512357301
2021 年 7 月 17 日
所以没啥是 mysql 文档解释不清的😂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/789728

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX