PHP+MYSQL频繁插入如何提高效率?

一个用于统计的PHP文件,每次运行将URL参数中的参数解析然后写入数据库,大概代码如下:

<?php
$code=$_SERVER["QUERY_STRING"];
parse_str($code);
$conf=require("config.php");
$connection=mysql_connect($conf['DB_HOST'].':'.$conf['DB_PORT'],$conf['DB_USER'],$conf['DB_PWD']);
if($connection){
    mysql_select_db($conf['DB_NAME']);
    mysql_query("set names utf8");
    mysql_query("insert into test(id,a,b,c,time)  values('$a','$b','$c','$time')");
    }
    mysql_close($connection);
?>

每次PHP脚本运行的时候都要执行以上操作,当PHP脚本并发运行多大时同时处理的太多,效率有点低,请问应该怎么优化呢?
使用memcache或redis?如果不使用的话,还有没有优化空间?

阅读 502
评论
    3 个回答

    可以使用mysql的读写分离

      1、可以采用消息队列异步插入
      2、使用redis做缓存,再异步插入数据库
      3、如果不需要关联查询的数据,可以使用mongodb这样非关系型的数据库,性能高。

      如果不使用的话可以
      1.innodb_buffer_pool_size 增大缓冲区配置
      2.读写分离

        这需要更详细的确认你的问题,是想提高响应速度,还是单纯提高数据的插入速度:

        1.异步处理
        把数据加入队列异步处理,这样可以不影响原有业务的访问速度
        2.使用Memcache活Redis缓存
        缓存随存随用,或者存完缓存再异步存入Mysql;
        3.使用Nosql非关系型数据库,如Mongo
        4.Mysql数据库分表,搭建集群处理高并发插入

          撰写回答

          登录后参与交流、获取后续更新提醒