Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Самый быстрый способ загрузки данных в таблицу / 12 сообщений из 12, страница 1 из 1
21.11.2017, 19:22
    #39557122
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Самый быстрый способ загрузки данных в таблицу
Необходимо загрузить в memory-таблицу несколько сотен строк.
Файлового доступа к серверу MySQL (чтобы использовать LOAD DATA) нет, загружать можно только SQL-инструкциями.
Я думаю выключать autocommit, формировать динамический SQL примерно такого вида:
Код: sql
1.
insert into `table` values (1,2,3), (4,5,6), ...


и затем вручную коммитить.
Или быстрее будет использование параметрического запроса?
Код: sql
1.
insert into `table` values (?,?,?)
...
Рейтинг: 0 / 0
21.11.2017, 20:53
    #39557159
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Самый быстрый способ загрузки данных в таблицу
Несколько сотен можно вставить как угодно. Проще всего одним инсертом.
...
Рейтинг: 0 / 0
21.11.2017, 21:23
    #39557170
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Самый быстрый способ загрузки данных в таблицу
В БД есть ограничение по количеству параметров и по объему SQL-запроса, не хотелось бы на него наткнуться.
Сейчас я загружаю с помощью динамического SQL (блоками по 100 строк), в принципе быстродействие меня устраивает.
Но несколько сотен строк это в том числе и 20-30 сотен строк, кроме того таблиц, загружаемых подобным образом, несколько десятков, поэтому если есть более оптимальный способ, я бы использовал его.
...
Рейтинг: 0 / 0
22.11.2017, 07:42
    #39557275
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Самый быстрый способ загрузки данных в таблицу
Alibek B.если есть более оптимальный способ, я бы использовал его.LOAD DATA/mysqlimport с указанием параметра LOCAL.
...
Рейтинг: 0 / 0
22.11.2017, 07:44
    #39557276
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Самый быстрый способ загрузки данных в таблицу
Alibek B.в memory-таблицуКстати, движок MEMORY не поддерживает транзакции, так что автокоммит на него не влияет.
...
Рейтинг: 0 / 0
22.11.2017, 10:14
    #39557319
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Самый быстрый способ загрузки данных в таблицу
miksoftКстати, движок MEMORY не поддерживает транзакции, так что автокоммит на него не влияет.
Надо же, не знал.
load data local поизучаю, я надеялся обойтись вообще без временных файлов.
...
Рейтинг: 0 / 0
22.11.2017, 12:28
    #39557416
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Самый быстрый способ загрузки данных в таблицу
Alibek B.я надеялся обойтись вообще без временных файлов.а исходные данные где находятся?
...
Рейтинг: 0 / 0
22.11.2017, 13:37
    #39557487
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Самый быстрый способ загрузки данных в таблицу
Исходные данные я получаю с веб-сервиса в JSON.
...
Рейтинг: 0 / 0
22.11.2017, 13:47
    #39557498
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Самый быстрый способ загрузки данных в таблицу
А версия сервера 5.7.6 и новее, или старая? а то JSON-то мож как есть туда можно...
...
Рейтинг: 0 / 0
22.11.2017, 13:48
    #39557501
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Самый быстрый способ загрузки данных в таблицу
5.1 помоему.
Правда можно обновиться (а заодно и на MariaDB перейти), но веб-сервис требует аутентификации через куки, поэтому я сомневаюсь, что я смогу получать данные прямо с сервиса.
Но если это возможно, то получать данные прямо с веб-сервиса было бы вообще идеальным решением.
...
Рейтинг: 0 / 0
22.11.2017, 14:04
    #39557514
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Самый быстрый способ загрузки данных в таблицу
Я имел в виду, не то, что MySQL будет сам лезть на веб-сервер за данными (это штатно невозможно), а то, что можно было бы прямо полученный JSON отправлять на MySQL-сервер, и он уже разберётся.
Alibek B.Я думаю выключать autocommit, формировать динамический SQL
...
и затем вручную коммитить.
Или быстрее будет использование параметрического запроса?
Не думаю, что будет большая разница. Параметрический запрос более безопасен, но накладные расходы будут выше, так что он будет, я думаю, чуть помедленнее.
...
Рейтинг: 0 / 0
22.11.2017, 14:30
    #39557528
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Самый быстрый способ загрузки данных в таблицу
У сущностей разное количество атрибутов и атрибуты имеют разный тип данных.
Параметрические запросы я использую в том числе и для того, чтобы не ломать себе голову правильным экранированием.
В принципе меня быстродействие такого переноса данных вполне устраивает, весь скрипт отрабатывает менее чем за минуту.
С load data все усложняется, думаю пока в этом нет необходимости.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Самый быстрый способ загрузки данных в таблицу / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]