【发布时间】:2011-09-25 19:57:02
【问题描述】:
如何让这个查询运行得更快...?
选择帐户 ID, 帐户名称, 帐户更新, account_sold, account_mds, ftp_url, ftp_livestatus, number_digits, number_cw, 客户名称, ppc_状态, 用户名 从 账户, FTP详细信息, 站点编号, 客户, 每次点击付费, 用户 WHERE Accounts.account_id = FTPDetails.ftp_accountid AND Accounts.account_id = SiteNumbers.number_accountid AND Accounts.account_client = Clients.client_id AND Accounts.account_id = PPC.ppc_accountid AND Accounts.account_designer = Users.user_id AND Accounts.account_active = '活跃' AND FTPDetails.ftp_active = '活动' AND SiteNumbers.number_active = '活跃' AND Clients.client_active = '活跃' 和 PPC.ppc_active = '活跃' AND Users.user_active = '活跃' 订购方式 Accounts.account_update DESC提前致谢:)
EXPLAIN 查询结果:
我实际上并没有设置任何外键...我试图避免对数据库进行更改,因为很快就必须进行全面检修。
只有主键是每个表的 id,例如account_id, ftp_id, ppc_id ...
【问题讨论】:
-
你的表有什么索引?
-
发布您的索引和 EXPLAIN 输出供人们评估。否则他们只会猜测。
-
...以及 EXPLAIN 计划,以及每个表的行数和索引的基数
-
如果您有理由不添加外键,则不必添加。您可以将简单的 KEY(不是 FOREIGN KEY)添加到 JOIN 中使用的字段中,并且很可能会提高性能。
-
@Pickup,请不要使用隐式
where连接语法,将其埋在它所属的 1989 年并使用显式连接。
标签: mysql sql performance