Массовое ОБНОВЛЕНИЕ строк MySQL 40K с запросом дружественного ресурса сервера - PullRequest
2 голосов
/ 12 сентября 2010

У меня есть что-то вроде 40K строк, и я должен выполнить запрос на обновление следующим образом:

UPDATE table1 
 SET column1='very long value 1...', column2='normal lenght value 1a'
WHERE pid ='123' and column3='ccc';

column1 - это TEXT

column2 - это Varchar (150)

...И я хочу использовать запрос MySQL, что более дружественно к ресурсам сервера.

Я хочу использовать что-то вроде этого:

UPDATE table1 
   CASE pid
    WHEN '123' THEN 'very long value 1...' 
    WHEN '124' THEN 'very long value 2...'  
    WHEN '543' THEN 'very long value 4...'  
    ...
    WHEN pid='34532' THEN 'very long value 5...'
    ELSE column1 
   END,
   column2= 
   CASE pid
    WHEN '123' THEN 'normal lenght value 1a'
    WHEN '124' THEN 'normal lenght value 2a'
    WHEN '543' THEN 'normal lenght value 4a'
    ...
    WHEN pid='34532' THEN 'normal lenght value 5a'
    ELSE column2 
   END
WHERE pid IN ('123','124','543', ...,'34532') AND column3='ccc';

и мой вопрос сколько строк я могуобновить таким образом в одном запросе ?

Есть ли другой дружественный к серверу метод для обновления этих 40К строк?

1 Ответ

1 голос
/ 12 сентября 2010

я думаю, что это не зависит от количества строк, но размер запроса !

размер одного запроса зависит от параметра

max_allowed_packet

http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_max_allowed_packet

чтобы увеличить это вы можете посмотреть на:

http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...