gpt4 book ai didi

mysql - 将多个长文本放入同一个表 mysql 中是一个好习惯吗?

转载 作者:行者123 更新时间:2023-11-29 12:16:53 25 4
gpt4 key购买 nike

我正在创建一个包含多个长文本行的 mysql 表。我预计很多用户会输入很多文本。我应该将它们单独分成不同的表还是将它们放在一张表中?我关心速度,会不会影响查询结果的速度,以后如果要传输数据怎么办?我正在使用 InnoDB,还是应该使用 Myisam?

CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
diet longtext NOT NULL,
run longtext NOT NULL,
faith longtext,
apple longtext
);

最佳答案

对于此数据库布局的速度,您主要关心的是您的查询是否是 SELECT *,而页面仅使用其中一个字段。 (这是一个非常常见的性能下降因素。)此外,如果您打算在可用文本列表等中每页显示多个文本,您可能需要一个单独的描述列(其中包含完整的截断版本)文本(如果没有别的),并且只获取这些内容,而不是获取全文然后在 PHP 中截断它。

如果您打算提供搜索功能,那么您绝对应该使用全文索引来保持性能清晰。如果您的MySQL版本是5.6.4或更高版本,您可以同时使用InnoDB和MyISAM进行全文搜索。否则,只有 MyISAM 在早期版本中提供此功能。

您还可以在一体式表格和每个表格单独表格之间进行第三种选择,这可能是一种选择方式,假设您将来可能最终会添加更多文本类型。即:

有第二个表,引用第一个表的 ID,一列(ENUM 是最有效的,但只要你索引它,实际上是一个边缘问题)指示文本类型(饮食、运行等) .),以及包含文本的单个长文本列。

然后,您将来可以毫不费力地添加更多文本类型,而无需对表格布局(或代码)进行更戏剧性的编辑,并且仅获取特定类型的文本也将很简单。结合主条目表(也可能包含一些相关元数据,如作者 ID、条目日期等)和文本的索引连接不应成为性能问题。

关于mysql - 将多个长文本放入同一个表 mysql 中是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29665188/

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