|
|
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
Сравнение закончилось? Сколько шло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 05:45 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
Все, индексы поставил, теперь сравнение проходит за 7-8 минут, спасибо что подсказали!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 12:12 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
А вот ещё вопрос такой, этот процесс сам по себе не жрет у меня ресурсы, легкая загрузка цп да и только. А можно как то 2 (или больше) таких процесса запараллелить? Или для этого нужен другой локальный сервер, и как следствие другая ОС? Просто настроек по увеличению производительности процесса в му.ini или в самом Workbenche я увы не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 12:57 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
mordegarА вот ещё вопрос такой, этот процесс сам по себе не жрет у меня ресурсы, легкая загрузка цп да и только.Если содержимое таблиц и индексов полностью в кэше, то должно быть полностью занято одно ядро. MySQL не умеет параллелить выполнение одного запроса на несколько ядер. Но можно это имитировать - выполнить несколько запросов в разных подключениях. Чтобы можно было посоветовать что-то по ускорению, покажите DDL обеих таблиц (включая индексы) и запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 13:07 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
miksoft, CREATE TABLE `rustts` ( `rustts` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, KEY `idxrustts` (`rustts`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci Это таблица на 300млн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 13:46 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
И такая же на 20 млн. CREATE TABLE `uss`.`biground` ( `biground` VARCHAR(100) BINARY NOT NULL) ENGINE = MyISAM; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 13:52 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
iNDEX: Type BTREE Allows NULL Yes Unique No ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 13:55 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
mordegar, Т.е. в каждой из таблиц по одному полю? Тогда имеет смысл попробовать 21675163 И почему одно поле BINARY, а другое utf8mb4 ? Если в данных только латинские буквы и цифры, то имеет смысл использовать тип VARBINARY. А если они постоянной длины, то даже BINARY (отдельный тип данных, а не модификатор varchar). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:10 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
miksoft, Да по одному полю в таблице, просто там написано: "Если исходная информация - текстовые файлы, и проверку надо сделать один раз", вот про один раз я не понял, я буду делать много таких проверок, просто будут заменяться данные в таблице где 20 млн. строк. Форматы одинаковые, просто я из разных мест скопировал. Ок, предложенный метод испробую. Длинна данных разная, но состоят только из лат. букв (мелких и заглавных) и цифр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:20 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
В целом конечно, конкретно для моих задач, результат проверки таблиц 20млн. на 300 млн. = 7-8 минут, т.е. 2-3 млн. в минуту это нормально. Просто было интересно, можно ли задействовать имеющиеся ресурсы видеокарт из под винды, чтобы повысить производительность. А то, почитаешь перед покупкой сколько Терафлопс выдают новоиспеченные модели карт, а на деле все эти мощности хз как использовать, именно для полезной нагрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:29 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
Я бы еще попробовал данные положить в InnoDB-таблицу и сделать из единственного поля первичный ключ, а других индексов не делать. Кроме того, если большая таблица не перезаливается от раза к разу, то имеет смысл собрать по ней статистику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:31 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
miksoft, Ну InnoDB я пытался в самом начале сделать, но там постоянно мне какие-то ошибки выдавал в некоторых строках при импорте записей в таблицу, а если получалось игнорировать ошибки в строках, workbench зависал намертво. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:35 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
mordegarПросто было интересно, можно ли задействовать имеющиеся ресурсы видеокарт из под винды, чтобы повысить производительность. А то, почитаешь перед покупкой сколько Терафлопс выдают новоиспеченные модели карт, а на деле все эти мощности хз как использовать, именно для полезной нагрузки.Может, это и имеет смысл с точки зрения производительности, но это уже точно не средствами СУБД делается. Ищите по словам CUDA, OpenCL. Если готового продукта под ваши цели не найдется, то придется программировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:36 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
mordegarmiksoft, Ну InnoDB я пытался в самом начале сделать, но там постоянно мне какие-то ошибки выдавал в некоторых строках при импорте записей в таблицу, а если получалось игнорировать ошибки в строках, workbench зависал намертво.Ошибки про дубли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:36 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
miksoftОшибки про дубли? 1262 it contained more data than there were input columns - вот это было и ещё 1062. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:42 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
miksoftmordegarПросто было интересно, можно ли задействовать имеющиеся ресурсы видеокарт из под винды, чтобы повысить производительность. А то, почитаешь перед покупкой сколько Терафлопс выдают новоиспеченные модели карт, а на деле все эти мощности хз как использовать, именно для полезной нагрузки.Может, это и имеет смысл с точки зрения производительности, но это уже точно не средствами СУБД делается. Ищите по словам CUDA, OpenCL. Если готового продукта под ваши цели не найдется, то придется программировать. как же не средствами БД? распараллелить свои поиски асинхронно может только сама бд... кто же ещё снаружи за неё там искать будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:42 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
не увидели? полудухmordegarВ обеих таблицах по одной колонке с данными типа "hC98hvW374hoEd7V8d", при создании таблиц в настройках ставил маркеры NN и Binar, формат VARCHAR (100). а они что, разных размеров идут? и вы конечно же делаете индекс по всей длине? там 10 чаров хватит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:42 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
полудух, Да, разных размеров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:47 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
Т.е. получается если в VirtualBox включить такой же сервер, и поставить ту же задачу, параллельно на реальной винде будет такой же процесс висеть, они оба будут нагружать одно и то же ядро? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:56 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
полудухmiksoftпропущено... Может, это и имеет смысл с точки зрения производительности, но это уже точно не средствами СУБД делается. Ищите по словам CUDA, OpenCL. Если готового продукта под ваши цели не найдется, то придется программировать. как же не средствами БД? распараллелить свои поиски асинхронно может только сама бд... кто же ещё снаружи за неё там искать будет Ну в смысле не классические РСУБД (Oracle, MS SQL, MySQL и т.п.) - они не умеют GPU использовать. А специализированные, которые умеют, мне неизвестны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 14:58 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
mordegarТ.е. получается если в VirtualBox включить такой же сервер, и поставить ту же задачу, параллельно на реальной винде будет такой же процесс висеть, они оба будут нагружать одно и то же ядро?Зачем VirtualBox ? Сделайте столько подключений к MySQL, сколько ядер, и в каждом по запросу запускайте. Или даже больше, тут уже смотреть надо по реальной загрузке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 15:12 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
miksoft, аа, точно, ок! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2018, 15:14 |
|
||
|
Как ускорить сравнение огромных таблиц
|
|||
|---|---|---|---|
|
#18+
Вы бы рассказали, чуть побольше об исходной задаче. - В каком виде получаете данные. - У Вас две таблицы. Они обе постоянные, или одна меняется ? - После того, как нашли дубли, какая-то еще обработка данных требуется ? - Под какой ОС ? Просто если Вы заливаете данные в базу данных только ради того, что бы один раз найти дубли, это выглядит несколько странным, так как подготовительные этапы будут занимать очень много времени... Задача выглядит не как счетная, вся нагрузка будет по вводу-выводу... Тут нужны не процессоры, а памяти побольше и SSD. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 09:08 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39702888&tid=1829614]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 379ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...