|
Как лучше добавить записи в таблицу MySQL? Порциями по 100 штук или все сразу? | ☑ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
Помогите
01.07.16
✎
13:41
|
Как лучше добавить записи в таблицу MySQL? Порциями по 100 штук за каждый запрос или все 20000 сразу одним запросом?
|
||||||||||||||||
1
Irbis
01.07.16
✎
13:42
|
20000 сразу, смысл мельчить, хотя если полей 1000, можно и частями. А проблема в чём?
|
||||||||||||||||
2
Зая Бусечка
01.07.16
✎
13:43
|
А как добавляешь? Код покажи...
|
||||||||||||||||
3
Jonny_Khomich
01.07.16
✎
13:44
|
по 1000 добавляй в транзакции
|
||||||||||||||||
4
Помогите
01.07.16
✎
13:45
|
(1) Полей мало. Сейчас на 20 000 записях работает норм. Но если их будет в 100 раз больше ничего страшного не случится?
(2) Обычным инсерт конечно. Как иначе? |
||||||||||||||||
5
Волшебник
модератор
01.07.16
✎
13:46
|
лучше по одной
|
||||||||||||||||
6
Помогите
01.07.16
✎
13:46
|
(3) Почему думаешь что все сразу не стоит?
(5) Почему так лучше? |
||||||||||||||||
7
Зая Бусечка
01.07.16
✎
13:47
|
(4) В нормальном сервере можно сделать инсерт порциями, можно булком.
|
||||||||||||||||
8
Помогите
01.07.16
✎
13:47
|
(7) А как лучше? Сервер нормальный
|
||||||||||||||||
9
Помогите
01.07.16
✎
13:49
|
Сервер не запарится парсить запрос если текст запроса будет на гигабайт?
|
||||||||||||||||
10
Зая Бусечка
01.07.16
✎
13:49
|
(9) Он его просто не примет. В нормальном сервере есть ограничение на размер запроса - где-то 32КБ
|
||||||||||||||||
11
Волшебник
модератор
01.07.16
✎
13:50
|
(6) Для MySQL так лучше. У неё часто таблицы сыпятся. Лучше работать маленькими запросами.
Для ускорения можно отключить индексы, добавить, потом включить индексы. |
||||||||||||||||
12
degot
01.07.16
✎
13:51
|
(0)гугли "load data infile"
|
||||||||||||||||
13
vde69
01.07.16
✎
13:52
|
(9) текст запроса должен целиком вмещаться в физическую ОЗУ, по этому при достижении определенных размеров - будет вылет с системной ошибкой...
по этому любые инсерты с непредсказуемым размером правильно дробить... Разбить на запросы поменьше |
||||||||||||||||
14
Зая Бусечка
01.07.16
✎
13:54
|
(13) Память тут ни причём. У сервера есть тупо ограничение на размер запроса. Они страхуются от недостатка памяти, не совсем дурные... хотя мыскл... Там может быть всё, что угодно
|
||||||||||||||||
15
Помогите
01.07.16
✎
13:55
|
(10) У меня работают запросы >>32Kb. Значит сервер не нормальный?
(11) Спасибо! Буду по одной добавлять. (12) Это не по теме Темку можно закрыть. |
||||||||||||||||
16
Зая Бусечка
01.07.16
✎
13:56
|
(15) Я не помню точное значение ограничений. Но оно есть
|
||||||||||||||||
17
Aistovich
01.07.16
✎
13:59
|
обычно все наооборот должно быть из май в мс, а тут прям интересное что-то, это чего-то в инет магазин выгружается из фронта...
|
||||||||||||||||
18
vde69
01.07.16
✎
14:03
|
(14) ты путаешь минимальное выделение памяти на запрос и предел...
|
||||||||||||||||
19
ul_tim
01.07.16
✎
14:32
|
Если разбираешься и имеешь доступ к настройкам My SQL то лучше одним запросом, если нет - тогда порциями по 10 тыс, например. Вообще делал запись одним запросом 90 тыс позиций - порядка 2 сек. Нет там никаких глюков. При обрыве соединения в момент записи большой порции, если запрос написал правильно - My SQL норм отрабатывает отмену порции.
Свой варик |
||||||||||||||||
20
ul_tim
01.07.16
✎
14:38
|
И еще. Если что то глючило в какой то версии 5 лет назад или при непонятных обстоятельствах - это не повод писать все построчно и забивать сеть десятками тысяч мелких запросов, а потом не понимать почему сайт тормозит. Единственный ньюанс - конечно нужно знать параметр по ограничению и ставить его в требуемом значении.
|
||||||||||||||||
21
Помогите
01.07.16
✎
19:29
|
Отлично. Спасибо!
|
||||||||||||||||
22
Asmody
01.07.16
✎
19:45
|
20000 на несколько гигабайт? Ты там хайрез фотки в блобах держишь?
|
||||||||||||||||
23
Asmody
01.07.16
✎
19:46
|
"В сто раз больше полей" - О_о!!!
|
||||||||||||||||
24
Asmody
01.07.16
✎
19:49
|
(11) В 5х версиях не сыплются. Не, ну сыплются, конечно, но редко.
|
||||||||||||||||
25
Помогите
01.07.16
✎
22:58
|
(22) нет, 20000 - это очень маленький запрос, всего на 1 мегабайт, он работает отлично. Но возможны более крупные запросы, неизвестного заранее размера.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |