• MySQL存储过程插入数据过慢处理方法(转)


    在使用存储过程进行千万条数据的插入的时候,插入效率在每分钟七千条左右,这样算下来,需要几十个小时,所以找了一下优化的方法,除了对存储过程本身的优化,还有就是修改了MySQL的配置文件的部分参数

    我做了以下几个参数的修改

    • innodb_log_file_size = 1024M

      日志组中的每个日志文件的大小,设置较大的值可以减少脏数据刷新到磁盘的次数

    • innodb_log_buffer_size = 256M  

    将日志写入日志磁盘文件前的缓冲大小,默认是16M,设置较大的值可以使日志在缓冲时不需要被保存到磁盘,减少磁盘读取次数

    • innodb_flush_log_at_trx_commit = 0

    将日志中的缓冲数据写入磁盘,默认为1,即每次提交事务都会写入磁盘,改为0后将减少写入磁盘的次数

    • innodb_buffer_pool_size = 4G

    该值用来高速缓冲数据和索引内存缓冲大小,也是减少磁盘IO来增加速度,一般设置为物理存储的60%~70%

    • innodb_buffer_pool_instances = 4 

    增加多个缓冲池,提高并行内存读写能力

    • innodb_write_io_threads = 8  &&  innodb_read_io_threads = 8

    增加IO线程数,提高读写能力,根据机器的处理器来设置

    • innodb_io_capacity = 500

    提高刷新脏页数量和合并插入数量,改善磁盘I/O处理能力,默认200

    以上参数修改都是通过减少对磁盘的IO操作来实现的,包括关闭了MySQL默认的事务存储到磁盘的操作,增大缓冲区的容量,这样子容易造成MySQL服务器宕机的时候,数据大量丢失,建议不要在生产环境下修改这些配置,根据实际情况修改

    本文转自:https://blog.csdn.net/qq_36182135/article/details/84854619

  • 相关阅读:
    Dreamweaver中SourceAnyWhere的使用
    访问被拒绝:“AjaxPro”的解决方案
    NDoc1.3.1使用手册
    程序中操作Excel
    模拟提交程序相关专题
    利用SMTP服务发送电子邮件
    如何使用树形控件
    GDI+简单使用例子
    程序中操作Word
    签名工具使用介绍
  • 原文地址:https://www.cnblogs.com/yadongliang/p/13893023.html
Copyright © 2020-2023  润新知