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

2021-07-15 15:49:23 +08:00
 fuxinya

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

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

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

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

2007 次点击
所在节点    MySQL
9 条回复
monetto
2021-07-15 16:01:02 +08:00
个人理解,会的。

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

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

https://www.v2ex.com/t/789728

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

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

© 2021 V2EX