|
|
|
| Есть многомерный массив из 10000 записей. Надо этот массив внедрить в базу. Как какое решение будет оптимальнее:
1. в цикле создаю отдельный запрос и 10000 раз вызываю mysql_query
2. в цикле прибавляю к строке запроса VALUES(...), после завершения цикла этот большой запрос передаю в mysql_query | |
|
|
|
|
|
|
|
для: t4f
(17.04.2007 в 12:07)
| | 2а. слово VALUES повторять не надо. между наборами нужно ставить запятую.
3. Компромисс в несколько сотен записей.
Объем запроса стоит уточнить соответственно размеру буфера запроса сервера. | |
|
|
|
|
|
|
|
для: Trianon
(17.04.2007 в 12:32)
| | 3. Компромисс в несколько сотен записей.
нет, такой компромис не пройдет.
Объем запроса стоит уточнить соответственно размеру буфера запроса сервера.
Понятно, спасибо. | |
|
|
|
|
|
|
|
для: t4f
(17.04.2007 в 14:12)
| | При решении таких задач обычно оказываются определяющими два соображения:
1. Гарантированно запихать весь объем в один запрос нельзя - всегда может случиться ситуация, когда этот объем превысит допустимый. А значит, если хочешь надежную устойчивую реализацию, то от решения с одиночным запросом хочешь-не хочешь - а откажешься.
2. Блочный запрос выполняется гораздо (на порядки) быстрее потока одиночных.
Конечно, можно плюнуть на скорость и на загрузку ресурсов.... как минимум пока сверху не начнут давить ... тридцатисекундным ограничением, например.. или еще чем. Но...
Ничего не останется, как пойти на компромисс. Если конечно, не возникнут какие-либо серьезные контраргументы. Я их себе представить не могу.
Чисто интереса ради. Какие возникли у Вас? | |
|
|
|
|
|
|
|
для: Trianon
(17.04.2007 в 14:24)
| | Чисто интереса ради. Какие возникли у Вас?
xml, csv... | |
|
|
|
|
|
|
|
для: t4f
(17.04.2007 в 14:37)
| | Это форматы файлов.
При чем тут способ формирования запросов? | |
|
|
|
|
|
|
|
для: Trianon
(17.04.2007 в 14:43)
| | Команда LOAD DATA INFILE другого оптимального варианта не вижу. | |
|
|
|
|
|
|
|
для: t4f
(17.04.2007 в 19:25)
| | В ситуации, когда ее можно применить - конечно, оптимум.
Только частенько её применить нельзя.... что ж, если это не Ваш случай - можно только порадоваться. | |
|
|
|
|
|
|
|
для: Trianon
(17.04.2007 в 19:59)
| | Дело в том, что данных очень много, более 10000 строк. И их необходимо загрузить за один раз. Компромиссов нет. Данные загружаются в базу один-два раза в день. | |
|
|
|