Mysql 语句中SQL语句的限制

Mysql 语句中SQL语句的限制,mysql,sql,Mysql,Sql,我需要维护一个群发邮件发件人的应用程序。最后一位程序员做得很好,但是老板觉得可以对数据库处理进行一些优化。露营结束后,报告将提供保存所选分段的选项。例如,我们发送50000封电子邮件,我们希望保存打开新闻通讯(2000年)的部分用户。该工具现在创建一个新的部分,复制联系人(插入),但我认为我们可以通过保存每个联系人的id来改进该工具 我想知道使用sql IN语句保存联系人是否会提高工具的性能,或者是否有其他方法来执行此操作。比如: 创建联系人ID列表,从联系人中选择* 从idContact所在的

我需要维护一个群发邮件发件人的应用程序。最后一位程序员做得很好,但是老板觉得可以对数据库处理进行一些优化。露营结束后,报告将提供保存所选分段的选项。例如,我们发送50000封电子邮件,我们希望保存打开新闻通讯(2000年)的部分用户。该工具现在创建一个新的部分,复制联系人(插入),但我认为我们可以通过保存每个联系人的id来改进该工具

我想知道使用sql IN语句保存联系人是否会提高工具的性能,或者是否有其他方法来执行此操作。比如:

  • 创建联系人ID列表,从联系人中选择*

  • 从idContact所在的联系人中选择*(所有联系人\u逗号\u分隔)->我将保存 这个

  • 提前谢谢


    PD:这是一个生产环境,所以在进行任何更改之前,我需要确保:-(

    您没有说明打开电子邮件的人员列表当前所在的位置。如果该列表不在数据库中,您将使用什么代码/过程来生成您在语句列表中的
    ?如果该列表在数据库中,为什么不
    加入
    您的表以获取信息

    无论哪种方式,当列表中有2000项时,我都不建议在
    中使用

    以下内容可能也值得您阅读:


    它是在考虑SQL server的情况下编写的(我不确定它是否都直接适用于MySQL)但是这些概念很有趣,正如eggyal的评论所建议的那样,您应该在更改生产环境之前进行测试。

    我建议在做任何其他事情之前在开发沙箱中镜像生产环境。
    例如,我们发送了50000封电子邮件
    我真希望这是完全非法和不合法的bleHi。这不是不可能的,我们只发送双重选择加入的人,所以这不是违法的。但是,法律部分由我的老板承担,我想这已经足够了……或者我很快就会换工作:-谢谢你的回复。数据库位于另一个表中,该表包含了露营的结果。从这里,我们可以获取我们需要的所有信息需要执行报告。所以我想我可以在这个表上加入一个连接来获取电子邮件。我将要求一个预生产环境来执行更改并测试结果。2000可能有点太多了,我会批量处理500-1000个。您需要测试以找到最佳大小。