
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
15.04.2015, 15:08
|
|||
|---|---|---|---|
|
|||
Синхронизация записи в БД |
|||
|
#18+
Добрый день Хочу спросить совета. Нужно синхронизировать запись в БД. В то время пока я роботаю с изменяемыми таблицами, то никакой другой поток не должен их тоже изменять. Я вижу такие варианты 1)Singleton клас. И метод который пишет в БД сделать synchronized 2) Зделать через java.util.concurrent.Executors 3) Синхронизировать на уровне БД (sql isolation level) (не знаю можно ли поставить синхронизацию на несколько SQL запросов к разным таблицам) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.04.2015, 15:19
|
|||
|---|---|---|---|
Синхронизация записи в БД |
|||
|
#18+
denis111111, транзакции знаешь для чего служат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.04.2015, 15:26
|
|||
|---|---|---|---|
|
|||
Синхронизация записи в БД |
|||
|
#18+
вадя, Тоб-то можно поставить уровень изоляции транзакции SERIALIZABLE, начать делать SQL запросы и все? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.04.2015, 15:30
|
|||
|---|---|---|---|
|
|||
Синхронизация записи в БД |
|||
|
#18+
denis111111вадя, Тоб-то можно поставить уровень изоляции транзакции SERIALIZABLE, начать делать SQL запросы и все? Для начала нужно иметь понимание что менее строгие уровни изоляции вам почему-то не подходят. Есть куча разных способов решить проблему. Но с начала нужно определится с тем действительно ли есть смысл синхронизировать доступ на уровне БД, а не на уровне Java. Постановка проблемы у вас слишком размытая, поэтому не понятно нужна ли тут пессимистичная блокировка SELECT FOR UPDATE или достаточно обычной транзакционности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.04.2015, 15:37
|
|||
|---|---|---|---|
Синхронизация записи в БД |
|||
|
#18+
denis111111В то время пока я роботаю с изменяемыми таблицами, то никакой другой поток не должен их тоже изменять. ты же не один. Это идёт вразрез с назначением БД как Многопользовательской. И веб тоже т.к. блокировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.04.2015, 15:52
|
|||
|---|---|---|---|
|
|||
Синхронизация записи в БД |
|||
|
#18+
Blazkowicz, Ну вот например есть таблица где записи не должны дублироватся ( есть уникальной ключ для каждой записи) Приходит партия записей для импорта в БД. Я создаю временную таблицу. Пишу новие записи в нее. Через join узнаю каких запсисей нет в системе и пишу их БД. Также мне нужен список дублей что потом отфильтровать остальние сущности для записи в БД Мне кажется тут и нужна синхронизация Можно поставить на ключевое поле что оно уникальное, но тогда если записи будут дублироватся запрос просто не исполнится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.04.2015, 15:54
|
|||
|---|---|---|---|
|
|||
Синхронизация записи в БД |
|||
|
#18+
denis111111Можно поставить на ключевое поле что оно уникальное, но тогда если записи будут дублироватся запрос просто не исполнится... В зависимости от базы данных можно использовать запросы которые 1) Будут игнорировать ошибку уникального констрейнта и просто пропускать запросы приводящие к ошибке 2) Проверять наличие ключа в таблице перед вставкой записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.04.2015, 15:57
|
|||
|---|---|---|---|
Синхронизация записи в БД |
|||
|
#18+
и для начала надо указать базу, чтоб ответы были более полными ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.04.2015, 16:06
|
|||
|---|---|---|---|
|
|||
Синхронизация записи в БД |
|||
|
#18+
вадяи для начала надо указать базу, чтоб ответы были более полными MySQL 5.6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.04.2015, 16:09
|
|||
|---|---|---|---|
Синхронизация записи в БД |
|||
|
#18+
для "большей защищённости" от "параллельных обращени" можно испльзовать транзакции в хранимых процедурах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2125533]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 507ms |

| 0 / 0 |
