powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
25 сообщений из 471, страница 6 из 19
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041714
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
mayton,

Спасибо огромное
Сейчас проверю на сотне строк.


Прошло 0.42 min - это на 10 строках моего, исходного скрипта.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041716
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
miltorg
mayton,

Спасибо огромное
Сейчас проверю на сотне строк.


Прошло 0.42 min - это на 10 строках моего, исходного скрипта.


Прошло 1.23 min

Это ваше решение выдало.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041717
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
miltorg
пропущено...


Прошло 0.42 min - это на 10 строках моего, исходного скрипта.


Прошло 1.23 min

Это ваше решение выдало.


Код: php
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.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
#!/usr/bin/perl

$t = time();

require "./baza.pl";

$dbh->do("SET autocommit=0");


$ot = '.';
$isx = 'keno13_3.txt';
$tabBD = 'n8n1';
$sovpadenij = 8;


$dbh->do("DROP TABLE $tabBD");

$dbh->do("CREATE TABLE $tabBD
(
id int(11) PRIMARY KEY auto_increment,
d1 VARCHAR(100),
myData1 VARCHAR(12),
myData2 VARCHAR(12),
str1 int(7),
str2 int(7),
sovpalo int(3)
) ENGINE = MYISAM;"); 



open D, "$ot/$isx";
@u = <D>;
close D;

$kolStr = $#u;


for $str (0..10){
  
  $str =~ s/[\r\n]//g;
  
  #print $u[$str];
  print $str;
	
	($d, $dn) = split (/\t/, $u[$str]);

  
  #print $dn."\n";

@a = split /\s/, $dn;



for $str2 ($str+1 .. $kolStr){

  next if $str2==$str;
  #print "$str2\n";
  @b = (); %isect = (); %inion = ();


  $str2 =~ s/[\r\n]//g;
	
	($d2, $dn2) = split (/\t/, $u[$str2]);


@b = split /\s/, $dn2;

#print @a;print "\n";
#print @b;print "\n";

for $e (@a, @b) {$inion{$e}++ && $isect{$e}++;}

@isect = keys %isect;

$is = scalar(@isect);

if($is >= $sovpadenij){
  #print "$u[$str]\n";
  #print "$u[$str2]\n";

$r = join('_', sort {$a<=>$b} @isect );

  
$dbh->do("INSERT INTO $tabBD VALUES (null, '$r', '$d', '$d2', $str, $str2, $is)");

#print " $str-$str2 $is";
#print "\n";
}}

print "\n";
}

$dbh->do("COMMIT");
$dbh->disconnect;

$t = (time()-$t)/60;
print "Прошло ";
printf('%0.2f', $t);
print " min";
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041722
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А раньше наполнение таблички сколько было? Я просто не помню цифр.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041725
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хи-хи.
Просто запись в файл:

Прошло 0.10 min

В 4 раза быстрее.

Хи-хи. Вот тебе и БД.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041728
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот я посравнивал хромосомы. Лог типа. Везде где больше 12 совпадений. У тебя там надо было что-то от десятки отсекать?
Я забил на это делал своё. Но ты всё равно глянть корректность.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Pohuyarili!! ... Go-Go!
Positions: ( 1194, 245 ), count = 12
Chromosomes: 1194	60 88 42 77 10 14 84 59 63 66 76 15 62 89 6 32 17 60 38 13  <=> 245	72 62 38 2 88 76 14 1 45 1 43 15 60 59 6 32 89 48 43 84 
Intersection (raw bits) : 2C00002080006020 : 0000000001880800 
Intersection decoded    : 6,14,15,32,38,59,60,62,76,84,88,89,
Positions: ( 2886, 201 ), count = 12
Chromosomes: 2886	62 13 20 29 28 36 59 30 10 73 36 56 11 21 62 51 50 86 18 83  <=> 201	41 50 70 21 51 18 14 73 76 62 9 29 77 56 10 36 32 13 86 1 
Intersection (raw bits) : 2086000810121200 : 0000000000200100 
Intersection decoded    : 10,13,18,21,29,36,50,51,56,62,73,86,
Positions: ( 3489, 1878 ), count = 12
Chromosomes: 3489	49 86 69 22 42 68 2 40 81 38 34 35 44 72 49 59 31 43 29 65  <=> 1878	58 81 65 24 23 44 61 10 74 22 29 59 2 38 31 20 35 42 51 34 
Intersection (raw bits) : 04000A2650200002 : 0000000000010001 
Intersection decoded    : 2,22,29,31,34,35,38,42,44,59,65,81,
Positions: ( 4515, 4362 ), count = 12
Chromosomes: 4515	2 71 57 79 19 60 15 36 44 32 20 40 56 67 75 55 35 46 64 35  <=> 4362	15 64 32 40 83 5 57 66 46 35 31 13 15 45 60 44 20 6 75 71 
Intersection (raw bits) : 0900288480084000 : 8000000000000440 
Intersection decoded    : 15,20,32,35,40,44,46,57,60,71,75,128,
Positions: ( 4923, 2361 ), count = 12
Chromosomes: 4923	14 3 26 67 51 60 69 82 6 64 88 4 49 26 47 16 74 8 13 66  <=> 2361	64 84 4 8 83 74 67 69 60 13 64 31 4 39 16 66 56 85 6 51 
Intersection (raw bits) : 08040000000090A8 : 8000000000000216 
Intersection decoded    : 4,6,8,13,16,51,60,66,67,69,74,128,
Vot i pizdec! Delov na 280 mili-sekund scuka!
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041729
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в меню сообщения есть кнопка ДОПОЛН. там есть ТЭГ spoiler
"простыни" можно прятать под этот ТЭГ
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041732
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обижаешь. У меня - не простыня.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041734
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

у вас тестовый 5000 файл?
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041745
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

а у меня в кавычках... никого не пытался обидеть) каждый думает в свою меру...
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041751
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
mayton,

у вас тестовый 5000 файл?

Да тот мелкий который u.txt
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041754
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
вы прям с него работаете? Потому что скорость не реальная даже для простого чтения файла
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041764
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убунта его закешировала. Сколько там? Жалкие килобайты.

Но суть - алгоритме.

Ты навали на меня так чтоб я почувствовал.

Дай лям.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041799
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПопробуй так
==>) ENGINE = MYISAM;");

Inserts должны ускорится. продолжим изыски - таблицы в памяти
Код: sql
1.
ENGINE = MEMORY

перед созданием таблицы установить
SET max_heap_table_size = ... для MAX размера таблицы.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041805
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне почему-то эту задачу хочется реализовать через unix - конвейер.

Типа загрузка таблицы. Калькуляция хромосом-дубликатов.

Код: sql
1.
$ miltorg-load | miltorg-calculate > report.txt



И все эти генераторы цифр и пермутаторы - просто как звенья цепочки.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041810
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
maytonПопробуй так
==>) ENGINE = MYISAM;");

Inserts должны ускорится.
продолжим изыски - таблицы в памяти
Код: sql
1.
ENGINE = MEMORY

перед созданием таблицы установить
SET max_heap_table_size = ... для MAX размера таблицы.
Вот еще SQLite мне нравится
https://perlmaven.com/sqlite-in-memory

Правда некоторые возможности SQL диалекта у него ограничены. Там надо смотреть. Какие-то запросы
могут не работать. Возможно там какой-нибудь pivot.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041842
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
miltorg

Поддерживать это всё должен Пользователь-Юзер. Даже не я.
Замечательное вы предложили решение - к нему просто нужен дополнительный отдел программистов :-)
А так - всё просто.
А вот вопрос - быстро или нет?
Мне жутко интересно:

1. Исходный файл дать не могу - не моё.
2. Можно ведь сгенерировать файл в 5 тысяч записей
3. Обсчёт моим методом занимает - около суток.

За сколько справиться ваш метод?

Сейчас сгенерирую файл.


гуд. вечером тогда научу номер строки вытягивать и запущу ... мерятся я люблю.


на комбинацию по 10 у меня заняло 31 минуту на стареньком i7-3770k.
у меня не нашлось даже в трех строках совпадений, максимум в двух. таких 9242 совпадения. я пока не разобрался, но подозреваю поскольку у меня не хадуп, а лишь заглушка от него в папочке на 5Мб, то работало это все в одном потоке, а не в параллель. видимо на что-то посерьезней все же нужно виртуалку с хадупом запускать.
зы. а куда можно файлик с результатми выложить, он хоть не по формату, но с выводом строк где найдены комбинации ?
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041847
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1

зы. а куда можно файлик с результатми выложить, он хоть не по формату, но с выводом строк где найдены комбинации ?

сюда получилось выложить
https://filebin.net/ugpm5w22ble5p5lt/miltorgout.zip?t=l9n8ljne

запущу теперь по 9 комбинаций.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041861
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
запущу теперь по 9 комбинаций.

странно, по 9 комбинаций те же 31 минута и не видно больше двух комбинаций, 79504 совпадений.

https://filebin.net/srpfxmekf7dhp0n8/miltorg9.zip?t=xk027t84
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041863
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чего единичка дважды повторилась? В хромосоме. Разве они не уникальны?

Код: sql
1.
[1, 30, 45, 46, 47, 49, 55, 85, 89]     2 /1;55;85;47;25;82;33;30;1;23;72;84;45;46;17;49;12;16;89;17; /83;31;19;30;49;54;85;69;39;1;79;47;55;58;89;61;46;45;56;84;
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041865
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А чего единичка дважды повторилась? В хромосоме. Разве они не уникальны?

Код: sql
1.
[1, 30, 45, 46, 47, 49, 55, 85, 89]     2 /1;55;85;47;25;82;33;30;1;23;72;84;45;46;17;49;12;16;89;17; /83;31;19;30;49;54;85;69;39;1;79;47;55;58;89;61;46;45;56;84;


в исходном файле вроде есть такая строка
Код: plaintext
4813	1 55 85 47 25 82 33 30 1 23 72 84 45 46 17 49 12 16 89 17 
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041866
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неаккуратненько как-то. У Прохорыча было такое?
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041870
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на 8 комбинаций нашлось 505262 совпадений и из них 623 в трех строках
причем посчиталось быстрее, за 25 минут

https://filebin.net/4rbttlchbmx792nb/miltorg8.zip?t=qfa6rgq0
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041873
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
u.txt
какая то другая задача - числа в строках повторяются
в лотерее так не бывает
да и "непонятных" дубликатов куча в ответе
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40041885
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ждем автора.
...
Рейтинг: 0 / 0
25 сообщений из 471, страница 6 из 19
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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