[英]Improving efficiency of SQL statement
这是一个理论上的例子 - 我提出的一个问题是帮助我学习的一种方式。 我很欣赏任何指针和解释,因为当谈到大型数据库时,我不仅仅是业余爱好者,而且渴望了解更多信息。
以下SQL即将在800万条记录的数据库上运行,可以采取哪些措施来提高效率?
SELECT
email_subscribers_extra.sendscont,
email_list_subscribers_new.subscriberid,
email_subscribers_extra.lastopen
FROM
email_list_subscribers_new
LEFT JOIN
email_subscribers_extra ON email_subscribers_extra.subscriberid = email_list_subscribers_new.subscriberid
WHERE
email_list_subscribers_new.partner = 'AJ'
ORDER BY
email_subscribers_extra.lastsend ASC LIMIT 0, 40000
编辑:让我们假设它是一个Linux apache,mysql服务器,因为这是我通常使用的。 目前没有索引集。
提高效率是SQL调优中的一个加载短语。 您通常会添加索引以加快SELECT性能,但添加索引通常会降低更新速度。 每个INSERT和DELETE语句都需要重写索引。 许多UPDATE语句也需要重写索引。
没有查看执行计划,也没有考虑对INSERT,UPDATE和DELETE语句的影响,我建议添加索引
大多数dbms会自动为外键引用中使用的列添加索引。 但是,至少其中一些会让您稍后删除该索引。
因此,在这些列上添加索引,或确保支持外键约束的索引存在。
在某些情况下,一个多列索引将为您提供比两个单列索引更好的SELECT性能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.