powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / ExecutorService
11 сообщений из 36, страница 2 из 2
ExecutorService
    #37672778
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
счас посмотрю скорости записи БД (где-то было)
...
Рейтинг: 0 / 0
ExecutorService
    #37672788
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ОзверинПетро, а ты я знаю хибером увлекся, пытался работать не с Рсубд+хибер?) Какие нить mongoDb и тд пробовал?)
неперспективно, поэтому тока хибер.
Если приготовить обычную БД, то другая не понадобится.
ЗЫ.
Да и потом - куда тебе торопится в записи для твоей задачи? :)


Времени жалко ;))
...
Рейтинг: 0 / 0
ExecutorService
    #37672798
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123счас посмотрю скорости записи БД (где-то было)

у меня MySQL 5.1
запись в базу из 2х таблиц:

tbl1: key(bigint, varchar(25), varchar(100)
tbl2: logrow(biging, varchar(255), varchar(512), varchar(2048), varchar(512), varchar(512), key_id)

ps = createPreparedStatement();
ps.addBatch();
ps.executeBatch();
...
Рейтинг: 0 / 0
ExecutorService
    #37672799
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинВремени жалко ;))
ВИ без ОРМ
- быстрее всего СУБД пишет файл своего формата
- а) все читатели его готовят
- б) субд одним махом его заберёт и моргнуть не успеешь.
...
Рейтинг: 0 / 0
ExecutorService
    #37672830
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот, как обещал, для размышлений:

Iskander
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
> А в скорости инсертов и апдейтов. Индексы нехило тормозят запись.
Можешь проверь скорость оракла в следующей ситуации на обычном десктопе? Академический интерес.

Есть две таблицы:

create table t1 (id integer, f1 integer, f2 integer, f3 integer, f4 integer, f5 integer);

create index t1_idx_f1 on t1 (f1);
create index t1_idx_f2 on t1 (f2);
create index t1_idx_f3 on t1 (f3);
create index t1_idx_f4 on t1 (f4);
create index t1_idx_f5 on t1 (f5);
create index t1_idx_id on t1 (id);

create table t2 (id integer, f1 integer, f2 integer, f3 integer, f4 integer, f5 integer);

Заполняем t2 случайными данными и замеряем время:

create or alter procedure proc_fill
as
declare variable var_count integer;
begin
  var_count = 0;
  while (var_count < 100000) do
  begin
    insert into t2 (id, f1, f2, f3, f4, f5)
    values (:var_count,
      cast(rand() * 1000000 as integer),
      cast(rand() * 1000000 as integer),
      cast(rand() * 1000000 as integer),
      cast(rand() * 1000000 as integer),
      cast(rand() * 1000000 as integer)
    );
    var_count = var_count + 1;
  end
end

Выполняем следующий запрос и замеряем время:

insert into t1 select * from t2

Firebird 2.5, Super Server, все параметры по умолчанию + WinXP 32bit, E5200 @ 2.5GHz, 2GB RAM, обычный SATA винт
Вставка 100к записей без индексов - 1 сек.
Переливание этих данных в таблицу с шестью индексами - 9 сек.
=======================
Вот тебе статистика с фаирберд.

insert into t1 select * from t2

Обе таблицы без индексов, шесть интежер полей. На 1кк записей такая вставка выполняется 5 секунд. Построение всех шести индексов еще 9 секунд. В сумме - 14 секунд. Если в t1 перед вставкой индексы не отключать, то запрос выполняется 100 секунд.
=================
...
Рейтинг: 0 / 0
ExecutorService
    #37672832
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ОзверинВремени жалко ;))
ВИ без ОРМ
- быстрее всего СУБД пишет файл своего формата
- а) все читатели его готовят
- б) субд одним махом его заберёт и моргнуть не успеешь.

Ход мысли не очень понял.
...
Рейтинг: 0 / 0
ExecutorService
    #37672839
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

про индексы и ежу понятно.
@ManyToOne(cascade = CascadeType.ALL) key.id->logrow.key_id.
...
Рейтинг: 0 / 0
ExecutorService
    #37672856
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
>Ход мысли не очень понял.
У каждой субд есть утилита или API для массовой закачки данных.
Она отключает все тормоза у себя и обратно включает после заливки.
Для MySQL поспрошай - я не в курсе.
Один из вариантов давно делал. ~ 50 K или файл 500 мегов
/topic/103823
т.е. это ещё быстрее чем пример выше без индексов
...
Рейтинг: 0 / 0
ExecutorService
    #37672859
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотрел кстати LinkedBlockingQueue, на самом деле в конструкторе можно указать capacity, и тогда она станет ограниченной, вроде linkedQueue должна пошустрее работать чем ArrayBlockingQueue.
Также посмотрел Java Concurrency in Practice - ваш пример есть в 7 главе, там авторы обращают внимание, что необходимо продумать, как грамотно остановить логирующий поток, весьма занимательно, если есть время - почитайте, там все очень хорошо расписано.
...
Рейтинг: 0 / 0
ExecutorService
    #37672885
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, спасибо всем.
По поводу "Java Concurrency in Practice" - как раз листаю ;)
...
Рейтинг: 0 / 0
ExecutorService
    #37672924
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Озверин,
будут цифры - выложи
т.е. если БД без оверхеда на сеть и ОРМ пишет 100K в сек.
То тебе достаточно 1 потока imho.
Удачи!
...
Рейтинг: 0 / 0
11 сообщений из 36, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / ExecutorService
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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