@camokatik

Отсеивание дублей строк с Mysql?

Здравствуйте,

Встала задача раздублить около 60гб строковых данных. Уникальных среди них около 25-30%

Решили использовать mysql с уникальным индексом для этого.


Вопросы:
1. Уникальным лучше делать поле с самой строкой (1-5 слов) или же оптимальней считать сначала crc32 от этой строки, и уже на хеш вешать уникальный индекс?

2. Можно ли применить некое курстарное подобие партиционирования, но не на уровне таблиц, а на уровне БД?

Например, делить данные по первой букве строки (получим 28 физических баз), и одновременно заполнять только одну из них, тем самым уменьшая потребление RAM?
  • Вопрос задан
  • 2732 просмотра
Пригласить эксперта
Ответы на вопрос 3
@camokatik Автор вопроса
Исходные данные в текстовых файлах лежат. Подлежать заполнению.
А вообще индекс на неочищенную можно добавить так:
ALTER IGNORE TABLE `test` ADD UNIQUE (`text`)
Ответ написан
tzlom
@tzlom
а, т.е. вы хотите создать БД с уникальным ключом и попытаться на неё импортнуть все строки?
насчёт партиционирования не знаю, я таких фич не встречал
считать хеш не рекомендую, тем более что 1-5 слов это весьма короткий фрагмент текста,MySQL сам справится с задачей
Ответ написан
@camokatik Автор вопроса
К сожалению только (no)mysql, там кроме раздублирования еще доп функионал нужен. Остановился на mysql т.к. только с ней работал плотно и опыта на порядок больше чем с другими субд.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы