【发布时间】:2012-01-21 02:28:14
【问题描述】:
当我发现我的数据库存在巨大问题时,我正处于一个 uni 项目的中间。使用 wamp 和一个庞大的(300Mb)数据库,但只有几个表,我的查询非常慢:(所有表都是用 MyISAM 引擎创建的。所有设置都是默认设置,我没有任何优化经验。我需要考虑一些更好的方法来做到这一点,但现在我的问题是什么是以下查询的最佳替代品:
SELECT * FROM `payments` WHERE id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
我不能使用左连接或我在这里找到的任何类似解决方案,因为这些 ID (1,2,3,4,5, ...) 不是来自数据库。用户选择他要删除的付款,然后在下一个屏幕上显示付款详细信息。
仅供参考,支付表有超过一百万条记录 :)
【问题讨论】:
-
id列上有索引吗?这可能最有帮助(对于这个查询) -
300Mb 并不大。即使是在 MSWindows 上运行的应用程序。也许如果您展示了表/索引的结构、mysqld 设置并提供了一个我们可以建议的解释计划。仅仅因为数据来自用户并不意味着它不能进入数据库。