Парсинг URL-адресов против хранения частей URL-адресов - PullRequest
1 голос
/ 18 января 2012

Я использую PHP и MySQL и создаю базу данных, которая должна хранить URL-адреса.Мне придется проделать большую работу с частями URL.В итоге получатся миллионы записей.

Мой вопрос в том, что имеет больше смысла:

  • для хранения частей URL в нескольких полях, что избавляет от необходимости разбора
  • Храните весь URL в одном поле и анализируйте его каждый раз

Спасибо за любой совет, который вы можете предложить!

Ответы [ 3 ]

2 голосов
/ 18 января 2012

Практическое правило при разработке новой схемы базы данных - не денормализовать, пока не будет доказано, что это необходимо.

Итак, начнем с самой нормализованной и самой простой схемы. И только после того, как у вас возникнут проблемы с производительностью - профиль ваше приложение и решение определенного узкого места.

0 голосов
/ 18 января 2012

Структура базы данных действительно зависит от запросов, которые вы планируете выполнять.

Если вам нужен поиск по частям URL, таким как доменное имя, вам нужно хранить их где-то еще, за пределами таблиц больших URL-адресов.выполнить эти запросы к меньшей таблице.

0 голосов
/ 18 января 2012

Зависит от вашего шаблона запроса. Если вы собираетесь делать что-то вроде SELECT * FROM urls WHERE hostname = ...., то вы, очевидно, хотите, чтобы они разбились на свои поля. Если вы никогда не собираетесь выполнять нарезку и нарезку данных с помощью запросов, то хранение только полного URL-адреса само по себе было бы хорошо. Но вы никогда не хотите анализировать на стороне db (всегда лучше просто хранить проанализированные данные, если вы обнаружите, что анализируете на стороне db).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...