необходимо сделать UPDATE что-то около 6тыс раз))
в сети предлагают пару способов
но на хабре наткнулся на мысль что несколько* запросов будут работать быстрее
могу заполнить массив и выполнить запросы поочередно либо сформировать гигантскую!!! строку для множественного ))
либо комбинировать
что посоветуете
*(здесь) тысяч )))
1. LIME - 29 Января, 2012 - 04:12:54 - перейти к сообщению
2. Мелкий - 29 Января, 2012 - 11:05:06 - перейти к сообщению
Если новые значения - нечто хаотичное и уникальное:
0) обернуть в одну транзакцию, если innoDB
1) через multy_query отправить
2) забить на оптимизации и прогнать тупым циклом - особенно если действие редкое
А если между значениями есть зависимость от старых или группируются как-то - то группировать. Ведь у update нет мультистрочной записи.
(Добавление)
ммм, наркоманский вариант из сумрачного разума:
создаём темповую таблицу (create temporary table), вносим в неё новые значения и значения, участвующие в условии апдейта. А потом нечто вроде
0) обернуть в одну транзакцию, если innoDB
1) через multy_query отправить
2) забить на оптимизации и прогнать тупым циклом - особенно если действие редкое
А если между значениями есть зависимость от старых или группируются как-то - то группировать. Ведь у update нет мультистрочной записи.
(Добавление)
ммм, наркоманский вариант из сумрачного разума:
создаём темповую таблицу (create temporary table), вносим в неё новые значения и значения, участвующие в условии апдейта. А потом нечто вроде
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- UPDATE orig_table JOIN temp_table USING( поля из WHERE ) SET orig_table.FIELD = tmp_table.FIELD