【发布时间】:2012-06-05 14:31:34
【问题描述】:
我们公司最近与特许经营权签约,为他们的客户提供我们的 POS(收银机)应用程序,这导致我们每周有大约 3-5 次新注册。目前,我们为每个新客户创建应用程序数据库的副本,但我已经可以看出,这种方法最终可能会让我们崩溃。我们在想也许最好为所有诊所使用一个数据库,这些诊所由每张表上的某种形式的客户 ID 标识。
现在我们就这个话题进行了一些辩论:一位同事说拥有一个包含 50,000 人的大表会使事情变得太慢,我们必须优化整个应用程序。另一位同事说 MySQL 是为处理大型数据库而设计的,只要您在每个查询 WHERE 子句中指定客户端 ID,您就会收到数据的子集,而速度几乎没有变化。
从大表(100,000+)中选择数据子集与从较小表中选择相同数量的行有显着的速度差异吗?
此外,任何关于数据库设计方式的建议将不胜感激。
【问题讨论】:
-
不,100k条记录是一个比较小的表;如果您的数据库服务器足够好,性能影响将是最小的。与您必须首先测试的所有内容一样。但是,您必须记住,您的客户可能不希望将数据与其竞争对手的数据合并。
标签: mysql database optimization query-optimization where-clause