gpt4 book ai didi

MySQL:为一条记录存储多个文本字段

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:51 27 4
gpt4 key购买 nike

一个没有经验的问题:

我需要将每条记录大约 10 个未知长度的文本字段存储到 MySQL 表中。我预计此表的总行数不会超过 50K,但速度很重要。出于所有实际目的,数据库操作将完全是 SELECT(并且搜索将仅使用整数 PK id 完成)。我正在使用 InnoDB。

换句话说:

编号 |文本 1 |文本2 |文本 3 | .... |文本10

据我所知,MySQL 会将文本存储在其他地方并在表本身上使用自己的指示符,我想知道考虑到数据存储方式,我是否应该担心任何基本的性能影响? (即从表中的几个“子提取”)。

谢谢。

最佳答案

本质上,您要问的是,这 10 个 TEXT 字段是否需要为您检索的每一行进行 10 次单独的磁盘搜索。我不确定 InnoDB 是否会将这些全部写成一行并能够快速读取它们,因此,对于大多数性能问题,最好的办法是创建并运行一些简单的测试并找出其含义(除非其他人过来并声称知道!)

有几点需要注意:

  • 由于您的表不是那么大并且您主要使用 SELECT,因此您可以只缓存数据。 InnoDB 可以在其缓冲池中存储实际数据(与 MyISAM 不同)- 因此请尝试将此值 (innodb_buffer_pool_size) 设置得足够大以容纳您的数据。
  • 如果您总是读取所有 10 列,并且想使用单个 TEXT 字段,您可以添加一些中间代码来处理将数据拆分为 10 个部分的操作,方法是在每个字段前加上它所具有的字符/字节数作为前缀,这样当您读回数据时,您就可以确切地知道每个部分占用了多少空间。
  • 如果您采用上述方法,您可能需要使用更大的 TEXT 字段,例如 MEDIUMTEXT 或 LONGTEXT。

关于MySQL:为一条记录存储多个文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2539759/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com