mysql是目前主流的数据库程序,很多方面都利用mysql进行对数据的储存,对数据库的操作也就是日常所见的了。php和mysql是天生的一对 ,即使大难临头也不会轻易放弃。。。
增删改查是日常用到的对数据库操作方法,一般的小操作对性能的影响也不大,可是到来10k+的数据了进行处理时性能就凸显出来了。当然,平时要养成优化的习惯是最好的。
大概说说数据库优化的几个方面:
- 对数据库添加索引
- 给查询添加条件限制
- 只取需要的字段,不要用通配符*进行全表查询
- 尽量不要在循环中执行查询操作!
- 其他优化
有时候需要批量插入数据(比如发送优惠券等),直接循环插入对数据库影响是很大的,当然如果数据量不大的情况下没有明显影响。
思路:利用一条sql语句同时插入多条数据。
构造:将需要插入的内容组成数组,然后拼接成字符串在insert into中直接插入多条数据。
其实实现很简单,这样一条语句比分开循环N次性能要好。
$data = $this->GetROWS()->queryrows("SELECT xxx_id FROM table_abc WHERE group_id=xxxx");
if (empty($data))
{
return array('code'=>1,'msg'=>'组内没有用户哦,先添加吧');
}
$arr = array();
foreach ($data as $k =>$val)
{
$arr[] = "('".$val['xxx_id']."','".$this->data['cid']."')";
}
if (!empty($arr))
{
$id =$this->GetDBACTION()->insertquery("INSERT INTO easyx (aaa_id,bbb_id) VALUES ".implode(',',$arr)." ");
}
//TODO 下面送上我做的一张思维导图