Может ли Doctrine DBAL выполнять пакетные вставки?
Можно ли выполнять пакетные вставки с использованием Doctrine DBAL против базы данных SQLite? т.е. сделать следующее более эффективным:
$twitter = new TwitterAPIExchange($twitterAuth);
$response = json_decode($twitter->setGetfield($getField)
->buildOauth($url, $requestMethod)
->performRequest());
foreach($response->statuses as $r) {
$statement = $app['db']->executeQuery('SELECT * FROM tweets WHERE twitter_id = ?', array($r->id));
$tweet = $statement->fetch();
if(empty($tweet)) {
$app['db']->insert('tweets', array('twitter_id'=>$r->id, 'contents' => $r->text, 'timestamp' => $r->created_at));
}
}
4
Author: codecowboy, 2013-07-29
1 answers
С Доктриной2, да! http://doctrine-orm.readthedocs.org/en/latest/reference/batch-processing.html
Доктрина2 использует шаблон UnitOfWork, поэтому в принципе вы можете "сохранить" несколько записей, а затем в самом конце запустить flush
- и он определит наиболее эффективный метод вставки/обновления/и т.д. всех данных. Это довольно умно.
-2
Author: infomaniac, 2015-05-02 09:43:12