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

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

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

Нет мне не сложно понять. Мне лень делать гипотезы и их проверять. Ты мог-бы просто сделать одолжение
и описать что входные данные - текстовый файл такого-то формата? С датаи или без дат.

Выходной файл - отчот тоже текстового формата с такими-то полями.

Это ведь не сложно? Ты бы избавил мир от лишних вопросов. И кстати. Есть система нумерации порядковых
номеров принятая в С++/Java. Она начинается с нуля. И есть система Pascal. Она идет с единицы. Это пустяк.
Но вообще когда говорят о ТЗ - то и такие мелочи оговаривают. Это - вопрос It-культуры.


Я 500-й раз напишу.

Ищем номера строк с максимальным числом 10-циферных совпадений - которое тоже нужно указать.

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

все 10 , даже те что входят в >10
там где 11 и т.д. совпадений - нужно тоже учитывать комбинации из 10-ти
то есть если попадется макс из 11 совпадений, то ответом будет 11 комбинаций по 10 чисел из 11 совпавших
допустим совпало 11 чисел
1 2 3 4 5 6 7 8 9 10 11 - 5раз
значит ответ
Код: plaintext
1.
2.
3.
  2 3 4 5 6 7 8 9 10 11 - 5раз
1   3 4 5 6 7 8 9 10 11 - 5раз
1 2   4 5 6 7 8 9 10 11 - 5раз
1 2 3   5 6 7 8 9 10 11 - 5раз
и т.д.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042244
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,

Ого! Вы поняли это!!!
Всего то месяц прошёл.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042246
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наполняем БД. Код:

Код: 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.
#!/usr/bin/perl

$t = time();

require "./baza.pl";

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


$ot = '.';
$isx = 'miltbase.txt';
$tabBD = 'n10tn0';

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

$dbh->do("CREATE TABLE $tabBD
(
id int(11) PRIMARY KEY auto_increment,


d0 VARCHAR(100),
myData1 VARCHAR(12)


)");



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

$kolStr = $#u;


for $str (0..$kolStr){
  
  $u[$str] =~ s/[\r\n]//g;
  
  #print $u[$str];
  print $str;
	
	($d, $dn) = split (/\t/, $u[$str]);
  
$dbh->do("INSERT INTO $tabBD VALUES (null, '$dn', '$d')");

print "\n";
}

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

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

Первые строки - это недоделанная работа!



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
mysql> select * from n10tn0 limit 10;
+----+-------------------------------------------------------------+------------+
| id | d0                                                          | myData1    |
+----+-------------------------------------------------------------+------------+
|  1 | 13 14 15 17 21 26 29 31 32 34 38 39 40 42 44 51 60 63 67 76 | 31.05.2007 |
|  2 | 2 9 13 14 15 24 27 32 33 41 48 50 52 54 61 62 63 65 67 73   | 01.06.2007 |
|  3 | 2 4 5 10 15 18 21 31 32 37 39 47 49 52 55 60 63 66 68 71    | 02.06.2007 |
|  4 | 2 9 12 18 21 25 27 29 36 39 40 46 50 53 56 61 64 68 69 77   | 03.06.2007 |
|  5 | 2 10 12 17 19 20 26 30 32 40 45 50 55 62 69 70 72 73 77 79  | 04.06.2007 |
|  6 | 1 3 4 7 18 19 23 27 33 35 38 46 50 55 56 57 60 63 76 79     | 05.06.2007 |
|  7 | 10 12 24 27 34 37 38 41 46 47 52 53 56 58 59 62 64 66 70 77 | 06.06.2007 |
|  8 | 1 7 9 10 12 14 16 21 22 26 30 32 34 41 43 47 49 50 65 79    | 07.06.2007 |
|  9 | 5 6 7 15 17 21 23 25 26 36 41 48 54 55 57 59 65 67 74 79    | 08.06.2007 |
| 10 | 2 5 8 16 19 22 23 28 35 40 47 48 57 65 66 67 68 70 74 76    | 09.06.2007 |
+----+-------------------------------------------------------------+------------+
10 rows in set (0.00 sec)
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042249
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

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

Ого! Вы поняли это!!!
Всего то месяц прошёл.
лишь бы до вас дошло -
Alex_Ustinov
в меню сообщения есть кнопка ДОПОЛН. там есть ТЭГ spoiler
"простыни" можно прятать под этот ТЭГ
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042270
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

Первый проход. Код:

Код: 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.
#!/usr/bin/perl

$t = time();

require "./baza.pl";

$tab0 = 'n10tn0';

$tab1 = 'n10tn1';

$sovpadenij = 10;

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

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

$dbh->do("CREATE TABLE $tab1
(
id int(11) PRIMARY KEY auto_increment,
d1 VARCHAR(100),
str VARCHAR(50),
sovpalo int(3)
)");


$s = "SELECT * FROM $tab0 LIMIT 1";
$sth = $dbh->prepare($s);
$sth->execute;

while (@r = $sth->fetchrow_array){
  
  @a = split / /, $r[1];

  print "$r[0]\n";


  $s2 = "SELECT * FROM $tab0";
  $sth2 = $dbh->prepare($s2);
  $sth2->execute;
  while (@r2 = $sth2->fetchrow_array){
    next if $r2[0] <= $r[0];
        
    @b = (); %isect = (); %inion = ();

    @b = split / /, $r2[1];

    #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){
      $r = join('_', sort {$a<=>$b} @isect );
      
      $dbh->do("INSERT INTO $tab1 VALUES (null, '$r', '$r[0]-$r2[0]', $is)");

    }
    
    #print "$r2[0]\n";
     

    }
  }

$dbh->do("COMMIT");
   

$sth->finish;
$sth2->finish;
$dbh->disconnect;

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

Первые 10 строк. Недоделано!

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
mysql> select * from n10tn1 limit 10;
+----+----------------------------------------+--------+---------+
| id | d1                                     | str    | sovpalo |
+----+----------------------------------------+--------+---------+
|  1 | 13_15_17_29_31_32_34_38_51_60_76       | 1-25   |      11 |
|  2 | 13_14_15_17_21_26_29_31_34_40_51       | 1-269  |      11 |
|  3 | 13_14_15_26_38_40_51_60_67_76          | 1-347  |      10 |
|  4 | 15_29_32_34_39_42_44_51_60_63_67       | 1-373  |      11 |
|  5 | 17_21_26_31_34_40_42_60_63_67          | 1-398  |      10 |
|  6 | 14_15_17_21_29_34_38_40_51_63_67       | 1-498  |      11 |
|  7 | 26_32_38_40_42_44_51_63_67_76          | 1-856  |      10 |
|  8 | 13_17_21_26_29_31_32_34_60_67_76       | 1-1013 |      11 |
|  9 | 13_14_15_21_26_29_38_42_44_51_60_63_76 | 1-1037 |      13 |
| 10 | 14_17_26_29_31_34_38_42_63_76          | 1-1350 |      10 |
+----+----------------------------------------+--------+---------+
10 rows in set (0.00 sec)
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042273
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

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

Как бы объединить эти 2 запроса в один?

Не про это ли писали в самой первой теме? - Но меня тогда скорость устраивала.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042296
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня пока - баг. Появляются числа больше 100. Исправлю - потом покажу репорт.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042308
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Экономил на спичках. Вместо битсета - регистры и целые числа. Вечная спешка...
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042332
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg,

Это нормальное решение:

22261538

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

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

Ого! Вы поняли это!!!
Всего то месяц прошёл.
у вас прогресс
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042343
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сделал фун-ю StrToBit (в Binary(100))
и обратную BitToStr() которая ищет пересечение единичек в (Bin1 & Bin2)

О чем уже сказано 55км пути назад
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042345
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя с Binary немного другой подсчет, но это не мешает использовать BIT_COUNT
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042347
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я откачусь назад. Сделаю медленно но правильно. Через BitSet. А уж потом если будет все корректно - тогда оптимизирую
по скорости. Битовые операции в Java не сложны. Только я про дополнительный код забываю.
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042353
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
Я сделал фун-ю StrToBit (в Binary(100))
и обратную BitToStr() которая ищет пересечение единичек в (Bin1 & Bin2)
* которая из единичек "делает числа"

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

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

это не ответ!!!)))
id covpalo cifri kol-vo3333-3334-3335-3336 14.07.2016 -15.07.2016 -16.07.2016 -17.07.2016 4 1-2-3-4-5-6-7-8-9-10-11-12 12.....

словеса у вас, с ненужными проходными выкладками
...
Рейтинг: 0 / 0
Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
    #40042397
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это не ответ!!!
id covpalo cifri kol-vo3333-3334-3335-3336-3337 14.07.2016 -15.07.2016 -16.07.2016 -17.07.2016-18.07.2016 5 1-2-3-4-5-6-7-8-9-10-11-12 12
...
Рейтинг: 0 / 0
25 сообщений из 471, страница 9 из 19
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Считает слишком долго. Уже 2 сутки. Как оптимизировать скорость?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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