powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Что использовать в качестве уникального ключа для URL
21 сообщений из 21, страница 1 из 1
Что использовать в качестве уникального ключа для URL
    #39141876
QuAzI_NODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть куча записей с привязанными к ним URL. Записи не должны дублироваться - по одной записи на URL.
За сим вопрос, какой ключ лучше выбрать - задавать UNIQUE сразу по URL, делать с него MD5 в качестве уникального ключа или есть варианты ключей получше, о которых я не в курсе, не сильно бьющие по перфомансу при их вычислении?
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141881
Фотография Одноклассник Императора
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QuAzI_NODEделать с него MD5 в качестве уникального ключане надо
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141898
QuAzI_NODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Одноклассник Императора,

Почему? Поиск по 16-байтовому полю будет дольше, чем поиск по тексту рандомной длины?
Записей ОЧЕНЬ много, поэтому перфоманс важен, иначе бы не было и вопроса
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141907
Фотография Одноклассник Императора
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QuAzI_NODE,
Ладно, начнём издалека.
Вы, уважаемый новичок (а вы ведь новичок, не так ли?), знаете ли что такое MD5 ?
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141916
QuAzI_NODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Одноклассник Императора,

Более-менее уникальный хэш, который в данном случае будет вычисляться добавляющим запись клиентом, не средствами СУБД.
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141925
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QuAzI_NODEПоиск по 16-байтовому полю будет дольше, чем поиск по тексту рандомной
длины?
Нет. Но и быстрее он тоже не будет.

QuAzI_NODEЗаписей ОЧЕНЬ много, поэтому перфоманс важен, иначе бы не было и вопроса

"ОЧЕНЬ много" это сколько миллиардов?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141934
Фотография Одноклассник Императора
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QuAzI_NODEделать с него MD5 в качестве уникального ключа
вощем я хотел плавно подвести вас к мысли, что ни хрена MD5 не уникальный, и запросто может оказаться, что md5(одной строки)=md5(совсем другой строки)
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141947
QuAzI_NODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Почему быстрее не будет?
Меньше ярда, я ж не гуголь (пока ещё ;-) ), но MySQL и MS SQL начинают знатно тупить при вставке уже на миллионе, а у меня по боле будет.
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141948
QuAzI_NODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Одноклассник Императора,

В принципе что-то в этом есть. Хотя пока не попадалось таких радостей. Но как тогда иначе это дело маленько оптимизировать?
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141963
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QuAzI_NODEПочему быстрее не будет?
Потому что индексы так устроены.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141987
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QuAzI_NODE,

Использовать Md5 + identity ?
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141989
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

Хотя стоп, походу фигню сморозил. Identity не спасет от коллизии по md5 сумме.
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141990
QuAzI_NODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMasterQuAzI_NODE,

Использовать Md5 + identity ?
То ли я не понял, то ли одно из двух. Как будет выглядеть реализация оного?
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39141995
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QuAzI_NODEМеньше ярдаА поточнее?
Использование MD5, возможно, и имеет смысл. Но, чтобы понять это, нужны подробности.

И, кстати, уникальность URL определяется строго по его тексту или как-то еще?
Например, для веб-сайта следующие URL-ы будут идентичными по сути, несмотря на текстовое расхождение:
http://site.ru/page.php?a=1&b=2
http://site.ru/page.php?b=2&a=1
http://site.ru/page.php?a=1&b=2#ttt
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39142001
QuAzI_NODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

>6260000 записей и будет расти
18567167

Определяются сейчас строго по тексту, хотя на счёт разного порядка аргументов мысль конечно здравая, надо будет потом переупорядочить аргументы в алфавитном порядке. Но смысл сабжа от этого мало изменится
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39142017
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QuAzI_NODE>6260000 записей и будет растиИндекс по MD5 от такого количества с хорошим запасом уместится в кэш в оперативной памяти (при современных размерах ОП).
Индекс по URL - уже вряд ли, но надо считать.
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39142025
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, раз данные уже есть, интересно было бы проверить, есть там коллизии по MD5 или нет.

Если MD5 покажется мало, то можно использовать SHA1() и SHA2(), вплоть до 512 бит, включая их комбинации.

Я бы еще попробовал на реальные данные натравить функцию COMPRESS(). Вдруг что-то даст...
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39142033
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак у вас есть
Код: sql
1.
create mytable (id int primary key, url varchar(100) unique, others)


Что именно вы оптимизируете?
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39142050
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начнем с того, что строка URL может не уместиться в максимальный размер ключа и для MS SQL, и, как подсказывает гугл, для mySQL.
Использование MD5 в качестве ключа недавно обсуждали
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39142615
Фотография wizli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
QuAzI_NODEDimitry Sibiryakov,

Почему быстрее не будет?
Меньше ярда, я ж не гуголь (пока ещё ;-) ), но MySQL и MS SQL начинают знатно тупить при вставке уже на миллионе, а у меня по боле будет.
MS SQL начинает тупить при вставке уже на миллионе


А по теме, возможно я не понял вопрос, но, что мешает добавить еще поле и сделать его уникальным идентификатором? Например, добавляем поле identity bigint и радуемся.
Но опять таки повторюсь, возможно не понял, что именно хочет автор)
...
Рейтинг: 0 / 0
Что использовать в качестве уникального ключа для URL
    #39142644
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wizliА по теме, возможно я не понял вопрос, но, что мешает добавить еще поле и сделать его уникальным идентификатором? Например, добавляем поле identity bigint и радуемся.
Но опять таки повторюсь, возможно не понял, что именно хочет автор)

Автор хочет контроля уникальности url-ей. Контроль уникальности при помощи unique constraint "из коробки" получится только если забить на коллизии хэша (ну либо искусственно ограничить длину URL), иначе надо делать некоторые телодвижения дополнительно.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Что использовать в качестве уникального ключа для URL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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