【发布时间】:2016-04-07 02:00:11
【问题描述】:
我有一个每天 24 小时扫描 twitter、facebook、google+ 的程序。每个用户正在运行并插入一个搜索列表(一次 100 个结果,函数循环运行,直到没有更多结果)
Yii::app()->db->createCommand(
"LOAD DATA INFILE '/var/tmp/inboxli_user".$user.".txt'
INTO TABLE inbox
FIELDS TERMINATED BY ',$%'
LINES STARTING BY 'thisisthebeginningxxx'
(created_on, created_at, tweet, tweet_id, profile_image,
twitter_user_id, screenname, followers, lang, tags, type,
positive_score, readme, answered, deleted, searchlist_id,
handled_by, used_as_newsitem, user_id)
" )->execute();
进入数据库以保持服务器上的负载尽可能小。但是,当我的函数进行批量插入时,我的选择函数运行速度非常慢。通常收件箱会在 1.5 秒内加载,但当插入运行时,有时需要 20 秒才能打开一个页面。
我的问题是如何优化这个?那么insert和select可以同时使用数据库而不会拖慢速度吗?
【问题讨论】:
-
更新:我注意到如果我的 myisam 表第一次加载缓慢而第二次加载缓慢而只有 5 个新新闻项插入到数据库中。所以也许加载文件没有以正确的方式插入索引?
-
请提供
SHOW CREATE TABLE。
标签: php mysql performance yii