我使用PHP和MYSQL(MYISAM)创建电子商务Web应用程序。我想知道如何加快我的查询针对大型数据库的mysql优化
我有一个超过一百万记录与以下列的产品表:id(int,primary)catid(int)usrid(int)title(int)description(int)状态(枚举)日期(日期时间)
最近我根据产品类别(catid)将此表分成多个表。认为它可能会减少服务器上的负载。
现在我需要从这些表中获取结果,并结合以下几组条件1.结果与usrid和状态匹配。 (用于获取用户产品)2结果匹配状态和标题或描述(例如:用于产品搜索)
现在我必须使用UNION从这些所有表中取得结果,这会降低表达的风险也不会将LIMIT应用于组合结果集。我想在所有这些列上创建一个索引来加速搜索,但这可能会降低插入和更新的速度。同样,我正在认为分裂桌子并不是一个好主意。
我想知道在这种情况下优化数据检索的最佳方法。我也接受新的数据库模式提案。
你能否给我们提供一个示例Database-Layout?另外,你是否考虑使用`JOIN`? – Bobby 2010-12-23 10:58:39
如果您使用相关的表和关键字概述了当前的数据库模式,那将会很有帮助。 对于拥有数百万条记录的表,我建议不要联合或将它们联接到其他表中,而是在表上进行单个查询并让脚本组合您的结果。 – Oli 2010-12-23 11:00:33