开发者社区> 问答> 正文

MySQL海量数据插入导致服务器性能下降,怎么解决?

蛮大人123 2016-02-06 09:58:26 858

项目是一个网络客户机安全监控系统的开发,客户机8000台,监控客户机所有行为,如:访问网站地址,打开和关闭的程序名,插拨USB设备的信息,建立和删除文件或文件夹等等信息。这些信息都需要通过服务器端运行的程序监控,把8000台客户端所有操作行为记录下来。实时用c++插入到mysql数据库。同时用php程序的web界面访问这个数据库,还要读数据库生成csv。就几个大表,设计的巨简单。几乎日志信息都保存到一个表了。这样可以想象客户端实时的信息会有很多的。服务器cpu直线上升,php访问数据库也需要2-3分钟。
请问大家有没有好的解决方案可以解决这个问题。当然表结构可以拆开的,还可以加索引,这个我也知道的。如果不考虑这个方面,其他方面有没有好的方法。

监控 安全 关系型数据库 MySQL PHP 数据库 C++ 索引
分享到
取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 18:38:13

    1.推荐使用InnoDB。
    2、关闭外键约束。
    3、采用多值插入“INSERT INTO yourtable VALUES (1,2), (5,5), ...;”
    4、加大buffer pool 是不错办法。
    相关优化配置:
    6、 推荐InnoDB的配置(1G内存情况,主要运行mysql服务器):

    innodb_buffer_pool_size = 600M
    innodb_additional_mem_pool_size = 64M
    # Set .._log_file_size to 25 % of buffer pool size
    innodb_log_file_size = 256M
    #innodb_log_buffer_size = 8M
    innodb_flush_log_at_trx_commit = 1
    #innodb_lock_wait_timeout = 50
    innodb_file_per_table
    其中innodb_flush_log_at_trx_commit和innodb_file_per_table对I/O性能影响最大。
    0 0
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程