Предполагая, что ваш дизайн базы данных выглядит следующим образом:
Page:
Id | URL
Link:
Id | Page_Id | URL
Если есть многократное повторное использование URL-адресов (например, для TVTropes), я, скорее всего, переформатировал бы дизайн так:
Domain:
Id | URL
Page:
Id | URL_Id
Link:
Id | Page_Id | URL_Id
Когда вы приступите к анализу данных, я бы порекомендовал индекс по URL, в дополнение ко всем обычным.
Если пробел становится проблемой (больше, чем время вставки или извлечения)), и существует множество уровней для ваших URL (глубокие структуры папок), вы можете попробовать это -
Domain:
Id | Parent_Id | URL_Part
Page:
Id | URL_Id
Link:
Id | Page_Id | URL_Id
Конечно, для сборки URL потребуется рекурсивный запрос, но перспективы сбора данных для этогоогромно.Однако, не зная больше о вашем реальном дизайне (и предполагаемом использовании), я не смогу предложить больше ничего.