powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как отсортировать 1 миллиард записей?
25 сообщений из 336, страница 7 из 14
Как отсортировать 1 миллиард записей?
    #40034898
Ares_ekb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paver,

да, это офигенно! Я сразу понял, что хранить в двоичном виде лучше, но до битовых операций не допер!
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40034911
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paver,

Хорошее решение. Да, рано мы закопали битовые операции, хотя это первый за многое время случай, где они действительно уместны.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40035018
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я практически решил задачу где совпадений в строках - 10
Остались решить задачи с 11 и 12 совпадений.
Скорее всего я просто, по новой их разложу на 10 совпадений и добавлю к общей таблице совпадений.
Потом сортировка, которая занимает секунды - и решение готово!
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40035226
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
Я практически решил задачу где совпадений в строках - 10

Тем временем тебе задачу уже решили в общем случае.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40035258
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
paver

Поскольку в MySQL максимальный диапазон ограничен 64 битами, придется использовать два поля по 50 бит.

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

У меня практически есть полный код. Вчера я обработал случай при 11 совпадениях в строках. Сегодня обработаю 12 совпадений.
13 совпадений вроде не было вообще.

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

Максимум который сортирует mySQL - 3 миллиона записей. И то, начинаются страшные тормоза и зависание.

Что делать?
Спасибо.

ФИЛЬТРОВАТЬ!
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40035471
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
Как отсортировать 1 миллиард записей?


Э, извини, я не так прочитал в первый раз, вместо "миллиард" я прочитал "миллион", а то сразу бы сказал, что я об этом думаю...

Ты что, идиот совсем? МИЛЛИАРД записей хочешь сортировать?
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40035533
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paver
Оказывается в 8-ке это ограничение уже снято.
дай ссылку
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40035544
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно услугу такую продавать. Сортировку толстых файлов. От 70 Гб

P.S. Побежал регистрировать домен под это дело.... ТС... я вам этого не говорил!
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40035647
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя
paver
Оказывается в 8-ке это ограничение уже снято.
дай ссылку

https://dev.mysql.com/doc/refman/8.0/en/bit-functions.html

"Bit operations become possible on values longer than 64 bits".
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40035648
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miltorg

А у вас нет кода.

Или вы не умеете читать
22261538
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40035650
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
Сегодня обработаю 12 совпадений.

Да переписать любым способом быстрее, чем ждать пока оно у тебя отработает для каждого случая.
miltorg
А у вас нет кода.

У нас задачи нет с заказчиком и исходными данными. Нафига нам готовый код?
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40035806
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
- мне 5 тысяч рублей. каждый месяц - за идею. Я буду доволен.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40035975
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересный топик... а в SQL никто так и не показал (и я не силен)
упростим,
есть показания х1, х2 ,х3,х4 на дату

искать половину (или больше) всевозможных совпадающих показателей объекта...
x = {x1 x2 x3 x4}
y = (y1 y2)

Y << X

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

Знаешь как говорят в америке.

За идею - 1 доллар. За реализацию 100 долларов.
А за продажу решения - миллионы.

А чтоб далеко не бегать - https://en.wikipedia.org/wiki/External_sorting
внешняя сортировка или еще бывает дисковая сортировка

Утилиты о которых я слыхал но лично не пробовал
  • http://kmkeen.com/gz-sort/
  • и еще была толи m-sort ... забыл название.
сработают быстрее чем БД на аналогичном дисковом массиве. Ведь
нам не надо будет прогружать все в таблицу и индексировать нужное поле.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40036006
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov
интересный топик... а в SQL никто так и не показал (и я не силен)

22261538

Alex_Ustinov
Y << X

Как это будет работать?
Текущее решение - из цифр сделать биты, например 1,2,3,4,7 заменить на 0x4F (0100 1111).
Потом сделать декартово с побитовом "и", посчитать биты и оставить всё, где получится больше 10.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40036236
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,

да, вчитался - хитро придумано
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40036250
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у правда работает)
интересно девки пляшут
вхождение 7,17 в множество 2,3,4,15,17
Код: sql
1.
2.
SELECT BIT_COUNT(b'01110000000000101' & b'00000010000000001')
=1
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40036308
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задачу я наконец то решил.
Теперь вопрос как это всё проверить?
Кроме того что искусственно создать несколько одинаковых строк - ничего в голову и не приходит.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40036309
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paver
Данные (все 5000 записей) следует перевести в битовые величины длиной в 100 (ну или два раза по 50) битов. И именно так их хранить. Вместо строки "2_12_21_28_36_...", например, нужно получить битовую величину с единицами во 2, 12, 21 и так далее позициях.

Получение количества совпадений чисел в 2 произвольных строках A и B - это количество бит в их побитовом произведении:
SELECT BIT_COUNT(A & B).

Т.е. при ежедневном добавлении новой строки нужно преобразовать ее список чисел в битовый формат (напр, в переменную A), после чего выполнить порядка 5000 произведений,

Код: sql
1.
2.
3.
SELECT date, vol & A
FROM tab
WHERE BIT_COUNT(vol & A) >= 10



Если нужно единоразово прошерстить все строки

Код: sql
1.
2.
3.
4.
SELECT t1.date, t2.date t1.vol & t2.vol
FROM tab t1
JOIN tab t2 ON t1.date <> t2.date
WHERE BIT_COUNT(t1.vol & t2.vol) >= 10




Поскольку в MySQL максимальный диапазон ограничен 64 битами, придется использовать два поля по 50 бит.
Ну и представить результат в формате, как нужно заказчмку.


Извините что долго не отвечал - делал по своему методу.
Вот этот ваш код он для чего?

1. Для сортировки 1 миллиарда записей?
2. Для полного решения задачи?
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40036310
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miltorg
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
5 7 8 15 22 23 27 34 37 39 40 41 43 44 50 55 57 58 62 70
3 5 9 12 15 16 19 20 23 25 29 30 34 37 43 48 55 58 59 61
2 3 5 12 15 21 23 24 26 28 36 37 38 39 50 53 55 59 66 68
2 3 5 7 8 11 14 16 19 25 35 43 50 51 55 60 61 66 67 70
2 8 11 12 14 17 18 20 21 28 36 43 50 53 55 56 59 62 64 66
2 5 10 11 15 16 18 19 27 29 30 32 33 35 42 43 45 62 63 65
5 6 7 8 16 21 27 30 39 46 49 50 51 53 54 58 62 64 68 70
1 2 3 7 9 11 12 13 15 17 20 24 26 28 34 45 48 49 61 66
7 8 12 13 14 21 23 24 27 28 30 38 40 49 50 52 53 54 63 68
1 3 5 7 9 10 14 21 23 27 31 34 45 46 47 48 51 52 64 65
1 5 6 7 9 11 14 17 29 30 33 36 37 39 42 43 48 50 64 65
2 9 11 12 13 17 18 23 25 27 33 38 40 44 45 46 47 52 64 66
1 5 6 11 14 16 17 20 22 23 25 26 31 41 44 47 56 59 64 70
3 5 9 19 24 25 26 27 28 33 34 40 45 50 53 55 59 63 64 66
3 6 8 11 13 19 23 25 28 32 33 34 37 41 50 54 56 57 59 65
2 3 5 7 15 23 28 29 32 37 38 46 49 50 52 53 59 60 61 62
1 5 7 9 11 16 18 20 22 25 26 35 45 46 47 51 56 67 68 70
11 15 16 22 25 28 29 32 34 35 42 43 47 49 52 53 54 57 62 63
8 9 15 17 26 30 31 35 37 38 41 42 44 50 52 58 60 64 66 69
4 6 8 15 16 17 18 24 26 33 34 35 36 37 42 44 50 54 65 69
5 7 8 15 22 23 27 34 37 39 40 41 43 44 50 55 57 58 62 70



нужно найти строки имеющие 10 совпадений цифр


Итак. Будем считать это исходным.
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40036311
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавим даты:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
1.08.1966	5 7 8 15 22 23 27 34 37 39 40 41 43 44 50 55 57 58 62 70
2.08.1966	3 5 9 12 15 16 19 20 23 25 29 30 34 37 43 48 55 58 59 61
3.08.1966	2 3 5 12 15 21 23 24 26 28 36 37 38 39 50 53 55 59 66 68
4.08.1966	2 3 5 7 8 11 14 16 19 25 35 43 50 51 55 60 61 66 67 70
5.08.1966	2 8 11 12 14 17 18 20 21 28 36 43 50 53 55 56 59 62 64 66
6.08.1966	2 5 10 11 15 16 18 19 27 29 30 32 33 35 42 43 45 62 63 65
7.08.1966	5 6 7 8 16 21 27 30 39 46 49 50 51 53 54 58 62 64 68 70
8.08.1966	1 2 3 7 9 11 12 13 15 17 20 24 26 28 34 45 48 49 61 66
9.08.1966	7 8 12 13 14 21 23 24 27 28 30 38 40 49 50 52 53 54 63 68
10.08.1966	1 3 5 7 9 10 14 21 23 27 31 34 45 46 47 48 51 52 64 65
11.08.1966	1 5 6 7 9 11 14 17 29 30 33 36 37 39 42 43 48 50 64 65
12.08.1966	2 9 11 12 13 17 18 23 25 27 33 38 40 44 45 46 47 52 64 66
13.08.1966	1 5 6 11 14 16 17 20 22 23 25 26 31 41 44 47 56 59 64 70
14.08.1966	3 5 9 19 24 25 26 27 28 33 34 40 45 50 53 55 59 63 64 66
15.08.1966	3 6 8 11 13 19 23 25 28 32 33 34 37 41 50 54 56 57 59 65
16.08.1966	2 3 5 7 15 23 28 29 32 37 38 46 49 50 52 53 59 60 61 62
17.08.1966	1 5 7 9 11 16 18 20 22 25 26 35 45 46 47 51 56 67 68 70
18.08.1966	11 15 16 22 25 28 29 32 34 35 42 43 47 49 52 53 54 57 62 63
19.08.1966	8 9 15 17 26 30 31 35 37 38 41 42 44 50 52 58 60 64 66 69
20.08.1966	4 6 8 15 16 17 18 24 26 33 34 35 36 37 42 44 50 54 65 69
21.08.1966	5 7 8 15 22 23 27 34 37 39 40 41 43 44 50 55 57 58 62 70
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40036313
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так лучше. Исходное:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
1.08.1966	5 7 8 15 22 23 27 34 37 39 40 41 43 44 50 55 57 58 62 70
2.08.1966	3 5 9 12 15 16 19 20 23 25 29 30 34 37 43 48 55 58 59 61
3.08.1966	2 3 5 12 15 21 23 24 26 28 36 37 38 39 50 53 55 59 66 68
4.08.1966	2 3 5 7 8 11 14 16 19 25 35 43 50 51 55 60 61 66 67 70
5.08.1966	2 8 11 12 14 17 18 20 21 28 36 43 50 53 55 56 59 62 64 66
6.08.1966	2 5 10 11 15 16 18 19 27 29 30 32 33 35 42 43 45 62 63 65
7.08.1966	5 6 7 8 16 21 27 30 39 46 49 50 51 53 54 58 62 64 68 70
8.08.1966	1 2 3 7 9 11 12 13 15 17 20 24 26 28 34 45 48 49 61 66
9.08.1966	7 8 12 13 14 21 23 24 27 28 30 38 40 49 50 52 53 54 63 68
10.08.1966	1 3 5 7 9 10 14 21 23 27 31 34 45 46 47 48 51 52 64 65
11.08.1966	1 5 6 7 9 11 14 17 29 30 33 36 37 39 42 43 48 50 64 65
12.08.1966	2 9 11 12 13 17 18 23 25 27 33 38 40 44 45 46 47 52 64 66
13.08.1966	1 5 6 11 14 16 17 20 22 23 25 26 31 41 44 47 56 59 64 70
14.08.1966	3 5 9 19 24 25 26 27 28 33 34 40 45 50 53 55 59 63 64 66
15.08.1966	3 6 8 11 13 19 23 25 28 32 33 34 37 41 50 54 56 57 59 65
16.08.1966	2 3 5 7 15 23 28 29 32 37 38 46 49 50 52 53 59 60 61 62
17.08.1966	1 5 7 9 11 16 18 20 22 25 26 35 45 46 47 51 56 67 68 70
18.08.1966	11 15 16 22 25 28 29 32 34 35 42 43 47 49 52 53 54 57 62 63
19.08.1966	8 9 15 17 26 30 31 35 37 38 41 42 44 50 52 58 60 64 66 69
20.08.1966	4 6 8 15 16 17 18 24 26 33 34 35 36 37 42 44 50 54 65 69
21.08.1966	5 7 8 15 22 23 27 34 37 39 40 42 44 45 46 47 52 64 66 69
...
Рейтинг: 0 / 0
Как отсортировать 1 миллиард записей?
    #40036314
Фотография miltorg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Результат 1 части:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
+----+----------------------------------+------------+------------+------+------+---------+
| id | d1                               | myData1    | myData2    | str1 | str2 | sovpalo |
+----+----------------------------------+------------+------------+------+------+---------+
|  1 | 5_7_8_15_22_23_27_34_37_39_40_44 | 1.08.1966  | 21.08.1966 |    0 |   20 |      12 |
|  2 | 2_12_21_28_36_50_53_55_59_66     | 3.08.1966  | 5.08.1966  |    2 |    4 |      10 |
|  3 | 3_5_24_26_28_50_53_55_59_66      | 3.08.1966  | 14.08.1966 |    2 |   13 |      10 |
|  4 | 2_3_5_15_23_28_37_38_50_53_59    | 3.08.1966  | 16.08.1966 |    2 |   15 |      11 |
|  5 | 11_15_16_29_32_35_42_43_62_63    | 6.08.1966  | 18.08.1966 |    5 |   17 |      10 |
|  6 | 7_8_21_27_30_49_50_53_54_68      | 7.08.1966  | 9.08.1966  |    6 |    8 |      10 |
|  7 | 5_7_23_27_34_45_46_47_52_64      | 10.08.1966 | 21.08.1966 |    9 |   20 |      10 |
|  8 | 23_27_40_44_45_46_47_52_64_66    | 12.08.1966 | 21.08.1966 |   11 |   20 |      10 |
|  9 | 1_5_11_16_20_22_25_26_47_56_70   | 13.08.1966 | 17.08.1966 |   12 |   16 |      11 |
| 10 | 8_15_17_26_35_37_42_44_50_69     | 19.08.1966 | 20.08.1966 |   18 |   19 |      10 |
+----+----------------------------------+------------+------------+------+------+---------+
...
Рейтинг: 0 / 0
25 сообщений из 336, страница 7 из 14
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как отсортировать 1 миллиард записей?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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