Лучший первичный ключ для хранения URL-адресов

, который является лучшим первичным ключом для хранения адресов веб-сайтов и URL-адресов страниц?

Чтобы избежать использования автоинкрементного идентификатора (который на самом деле не привязан к данным), я разработал схему с использованием подписи SHA1 URL-адреса в качестве первичного ключа.

Этот подход полезен во многих отношениях: например, Я не Мне нужно прочитать last_id из базы данных, чтобы я мог подготовить все обновления таблицы с вычислением ключа и выполнить настоящее обновление за одну транзакцию. Никакого нарушения ограничений.

В любом случае я прочитал две книги, которые говорят мне, что я неправ. В «Высокопроизводительном MySQL» сказано, что случайный ключ не подходит для оптимизатора БД. Более того, в каждой книге Джо Селко он говорит, что первичный ключ должен быть частью данных.

Вопрос в том, что естественные ключи для URL-адресов - это ... сами URL-адреса. Дело в том, что если для сайта он короткий (www.something.com), ограничений для URL-адреса нет (см. http://www.boutell.com/newfaq/misc/urllength.html ).

Представьте, что мне нужно хранить (и работать с) несколько миллионов из них.

Какой ключ тогда лучший? Автоинкрементные идентификаторы, URL-адреса, хеши URL-адресов?

12
задан spider 17 September 2010 в 12:43
поделиться