![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| integral |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.7.2006 Где: Dnipropetrovs' ;k, Ukraine Репутация: нет Всего: нет |
У меня есть массив интов (int[] arr), размер может быть несколько десятков тысяч. Этот массив нужно сохранить в таблицу вида create table(id int) . БД под управлением MySQL, к ней конектимся через JDBC
Вопрос состоит в том, какой самый быстрый способ такое сделать? куча последовательных инсертов не подходит всем спасибо |
|||
|
||||
| goodday1941 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 709 Регистрация: 16.7.2006 Где: Украина, Киев Репутация: нет Всего: 9 |
другого выхода кажись и нету.. главное все в одной транзакции делать -------------------- SCJP 6 |
|||
|
||||
| integral |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.7.2006 Где: Dnipropetrovs' ;k, Ukraine Репутация: нет Всего: нет |
если массив на 10000, да это же будет невероятно долго...
вот идейка есть попробовать так: insert into tmp(id) values (?), (?), ..., (?) и где-то 500 таких в одном PreparedStatement, лепить понятно а не вручную писать но вот не уверен, что это действительно поможет. Тлее надежда что можно побыстрее |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
||||
|
||||
| ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 32 Всего: 81 |
||||
|
||||
| mbasil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Если вы не делаете поиск по некоторому конкретному элементу потом, а вам нужно одним запросом получить весь массив из базы. Я бы сохранял его в одном поле, а потом извлекал целиком. В Oracle я это делал в поле типа VARRAY. Наверное и в MySQL можно "сварганить".
Смысл есть вставлять каждое значение в отдельную строку только тогда, когда вам надо потом извлекать небольшое количество строк в рамках одного запроса. |
|||
|
||||
| Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 10 Всего: 40 |
А может использовать естественный для таких задач тип BLOB? И пользоваться потоками сериализации.
|
|||
|
||||
| Platon |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 10 Всего: 40 |
Давно мечтал поэксперементировать с этим. Получилось ^_^
На запись массива
|
||||||
|
|||||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 4 Всего: 43 |
в MySQL: LOAD DATA LOCAL INFILE
в MS SQL: BULK INSERT |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |