开发者社区> 问答> 正文

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

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

展开
收起
蛮大人123 2016-02-06 09:58:26 2768 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    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性能影响最大。
    2019-07-17 18:38:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像