привет. Есть вопрос, который интересует, но пока нет опыта, чтобы однозначно на такой вопрос ответить.
связка php+mysql(pdo)
Задача - начисто проапдеитить 1000 или больше строк в какой-то таблице за раз. "начисто" - значит, что предыдущие данные нас не интересуют.
Строка имеет свой уникальный ключ.
Способы решения.
1 Цикл. В каждой итерации делать запрос на update.
for ($i = 0; $i < count($arr); $i++) { $value = $arr[$i]['value']; $id = $arr[$i]['id']; $sth = $this->_db->prepare("UPDATE table SET value=$value WHERE id=$id;"); $sth->execute(); $sth->fetch();}
2 Заводим строчную переменную. Цикл. В каждой итерации дописываем нашу переменную запросом. Т.е вконце строка будет иметь вид кучи независимых запросов, разделенных точкой с запятой.
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Портфолио https://www.behance.net/d4d4186e
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Портфолио https://www.behance.net/d4d4186e
Question
Yazon_Nile
привет. Есть вопрос, который интересует, но пока нет опыта, чтобы однозначно на такой вопрос ответить.
связка php+mysql(pdo)
Задача - начисто проапдеитить 1000 или больше строк в какой-то таблице за раз. "начисто" - значит, что предыдущие данные нас не интересуют.
Строка имеет свой уникальный ключ.
Способы решения.
1 Цикл. В каждой итерации делать запрос на update.
2 Заводим строчную переменную. Цикл. В каждой итерации дописываем нашу переменную запросом. Т.е вконце строка будет иметь вид кучи независимых запросов, разделенных точкой с запятой.
3 Цикл. В каждой итерации удалять строку из таблицы и формировать insert запрос, который запустить после того, как отработает цикл.
Третий вариант можно также модифицировать, не выполняя делит запрос каждый раз, а тоже сохранять его в переменную и выполнить потом все одним скопом.
Какой из представленных способов отработает быстрее остальных?
Edited by Yazon_NileМожет есть ещё способы?
Спасибо за помощь.
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.