【问题标题】:Mysql insert,updates very slowmysql插入,更新很慢
【发布时间】:2013-05-10 06:14:16
【问题描述】:

我们的服务器数据库在 mysql 5.1 我们的数据库中有 754 个表。我们为每个项目创建一个表。因此,大量的桌子。 从过去的一周开始,我注意到任何表的插入和更新都有很长的延迟。如果我创建一个新表并插入其中,插入大约 300 个记录需要一分钟。

我们在同一台服务器上的测试数据库有 597 个表,同样的插入在测试数据库中非常快。

默认引擎是 MISAM。但是我们在 INNODB 中的表很少。

有几个触发器正在运行。在我删除触发器后,它变得更快了。但是速度还不够快。

【问题讨论】:

    标签: mysql performance insert


    【解决方案1】:

    使用DESCRIBE 了解您的查询执行计划。

    更多地查看http://dev.mysql.com/doc/refman/5.1/en/explain.html 的用法。

    【讨论】:

    • @hd1 甚至可以归类为过于宽泛..不是一个真正的问题..lol
    【解决方案2】:

    正如@swapnesh 提到的,DESCRIBE 命令对于性能调试非常有用。 您还可以使用以下方法检查安装是否存在问题:

    你可以这样使用它:

    wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
    chmod +x mysqltuner.pl
    ./mysqltuner.pl
    

    当然,这里我假设您运行某种基于 Unix 的系统。

    您可以使用OPTIMIZE。根据手册,它执行以下操作:

    重新组织表数据和关联索引的物理存储 数据,以减少存储空间并提高 I/O 效率时 访问表。对每个表所做的确切更改取决于 该表使用的存储引擎

    语法是:

    OPTIMIZE TABLE tablename
    

    【讨论】:

      【解决方案3】:

      批量制作而不是一个一个制作时,插入通常会更快。尝试在每个语句中插入 10、30 或 100 条记录。

      如果你使用 jdbc,你也许可以通过批处理达到同样的效果,而无需更改 SQL。

      【讨论】:

        猜你喜欢
        • 2013-08-03
        • 1970-01-01
        • 2018-12-04
        • 2014-02-27
        • 1970-01-01
        • 1970-01-01
        • 2020-04-05
        • 1970-01-01
        • 2017-01-07
        相关资源
        最近更新 更多