有多少MySQL行太多了?

时间:2010-01-08 18:05:08

标签: mysql

我正在开发一个网站,该网站主要使用一个包含组织表的数据库,每个组织一行。每个组织都可以拥有无​​限数量的附加关键字。关键字在与组织分开的表中表示,其中每一行只是主键,关键字和附加到的组织的主键。最终这个表可能有数千个条目。这是否会从此表中提取记录,以及在表格中列出唯一关键字,这太费时了?

4 个答案:

答案 0 :(得分:17)

只要有几十万行就完全没问题了:

  • 他们被正确编入索引
  • 并且您的查询已正确完成(例如,使用正确的索引)

我正在开发一个应用程序,它在几个表上进行了大量查询,每个表都有几十万个记录,带有连接而不是“简单”where子句,而且该应用程序工作正常 - 好吧,因为我们已经优化了查询和索引^^


在这种情况下,几百万行也可以,我会说 - 取决于你会做什么样的查询(以及其中有多少) ^^


在每种情况下,只有一种方法可以确定:

  • 你必须知道你将要做什么样的查询,
  • 您还必须拥有一个要测试的大型数据集,
  • 你必须进行基准测试:在很多时候,使用并发性在数据集上启动查询,就像在“真实条件”中一样 - 并且它将帮助回答问题“它会处理负载吗?我必须优化?瓶颈是什么?“

答案 1 :(得分:1)

成千上万的参赛作品并不是很多。如果您需要检索特定关键字,请务必为关键字编制索引。

答案 2 :(得分:0)

如前所述,mysql不应该是问题 - 我听说几百万行的表没有问题..但要注意围绕mysql请求的php循环可能很棘手,速度慢,甚至结束你的脚本出现“超时”错误!

答案 3 :(得分:-1)

如果你必须要求限制,那你做错了。虽然你正在描述多对多关系,但这完全没问题。

只需保持索引最新,这应该不是问题。我的当前数据库中有一个表有94k行,而且速度足够快。

一些建议让它更快,如果你知道关键字可以有多长,并且它不是太大,考虑使用CHAR而不是VARCHAR,你将使用更多空间,但完全设置的字节长度行是订单比没有的更快。 执行查询时,只获得你需要的东西,即limit / top和where子句,除非你真的需要所有行,否则不要在选择器中使用'*'。