表中应该有多少数据,以便读数最佳?假设我有3个字段varchar(25)。这是在MySQL。
答案 0 :(得分:2)
我建议您在优化数据库设计时考虑以下因素:
答案 1 :(得分:1)
行数无关紧要。确保您搜索的字段已正确编入索引。如果您只有3个varchar(25)字段,那么您可能需要添加一个非varchar的主键。
答案 2 :(得分:1)
同意您应确保您的数据已正确编入索引。
除此之外,如果您担心表格大小,您可以随时实施某种类型的数据存档策略。
在看到问题出现之前不要过于担心,不要过早优化。
答案 3 :(得分:0)
为了获得最佳读数,您应该有一个索引。存在一个表来保存它所包含的行。随着行数的增加,索引的值发挥作用,读数仍然很活跃。
答案 4 :(得分:0)
这样的话,我不知道如何回答这个问题。一个包含100,000条记录的表格比一张未编制索引的1,000表快。
您有什么要求?你有多少数据?一旦您知道这些问题的答案,就可以做出有关索引和/或分区的决定。
答案 5 :(得分:0)
这是一个非常宽松的问题,所以答案非常宽松: - )
一般来说,如果你做基本的 - 合理的规范化,合理的主键和普通的查询 - 那么在今天的硬件上,你将在中小型数据库中获得大多数东西 - 即一个最大的表记录少于50,000个。
然而,一旦超过50k - 100k行,这大致对应于rdbms可能受内存限制的点 - 那么除非您正确设置了访问路径(即索引),否则性能将开始下降灾难性的。这是数学意义上的 - 在这种情况下,表格尺寸加倍会使性能恶化一个数量级或两个数量并不罕见。
因此,显然您需要注意的关键表大小将根据行大小,机器内存,活动和其他环境问题而有所不同,因此没有单一的答案,但是要注意性能通常会不会因表格大小而优雅地降级并做出相应的计划。
答案 6 :(得分:0)
我必须不同意Cruachan关于“50k-100k行......大致对应于rdbms可能受内存限制的点”。如果没有两个额外的数据,这个一揽子声明就会产生误导:约。行的大小和可用内存。我目前正在开发一个数据库,以找到源代码文件中行的最长公共子序列(生物信息学),并在一个表中达到数百万行,即使VARCHAR字段接近1000,也会在它成为内存之前限制。因此,通过适当的索引和足够的RAM(一两个Gig),就最初的问题而言,最多只有75个字节的行,没有理由为什么建议的表不能容纳数千万条记录。
答案 7 :(得分:0)
适当数量的数据是应用程序的功能,而不是数据库的功能。通过将表分成多个子表来解决MySQL问题的情况非常少,如果这是您的问题的意图。
如果您遇到查询速度较慢的特定情况,那么通过修改查询或表格设计讨论如何改善这种情况可能会更有用。