繁体   English   中英

从mysql数据库中检索数据会更快吗?

[英]Which would be faster in retriving data from a mysql database?

哪个从mysql数据库中检索数据会更快? 数据分为两列,还是来自单列的相同大小的数据?

编辑:

只是提出一个想法,我有一个问题表和五个答案。 这些答案相当大,每个1500字。 在数据检索速度方面,我应该为每个答案使用一列,还是应该只用一个分隔符分隔5个答案的一列,然后用脚本分隔它们?

不要将答案组合成单个列,不管是否分隔。 如果你这样做,你不仅打破了数据库设计第一范式的经验法则,那么你也可以为自己设定一个受到伤害的编程世界。

您还应该考虑到您在此处参与过早优化 也不要那样做。 根据我的经验,我认为其他人会同意,您应该相信您的RDBMS能够有效地存储和检索数据。 您唯一需要做的就是正确设置索引。 如果这确实会导致性能问题,那么您可以在此时进行非规范化。

为了响应您的编辑,您提供的选项都不是此问题的“正确”设计。 您应该在答案表中创建5 ,每包含问题的ID和一列中的单个答案。

只有在遇到性能问题时才考虑其他设计。 除非您收集数百万个问题,否则不太可能出现问题。

如果它们在同一个表中,它就没有区别。

访问行后,从列中查找数据需要花费大量时间。

您应该根据您的数据以及访问方式做出决定。

不要依赖猜测和假设。 自己,硬件,编码和数据进行基准测试。

我会说,您访问和使用信息的方式比实际存储的方式更具相关性。

我可能会说,如果您要独立引用每个答案,例如多项选择答案,请将答案存储在具有以下结构的3列表中:

CREATE TABLE answers (
  question_id INTEGER PRIMARY KEY,
  answer INTEGER,
  answer_text TEXT
);

对于给定问题中的每个答案,答案将是1,2,3,4 ......的答案,将更加合适和理智。

某些DB不会索引文本类型列。 因此,如果您将文本列中的列拆分为varchar, 并且每列都已编入索引, 并且您使用的是不对文本列编制索引的数据库,则可以更好地分解它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM