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?如果不使用的话,还有没有优化空间?

阅读 3.2k
3 个回答

可以使用mysql的读写分离

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题