Хорошо, посмотрим.
просмотр большой таблицы комментариев, чтобы найти комментарии к соответствующей записи, будет дорогим
Почему вы думаете, что это будет дорого? Потому что вы, возможно, полагаете, что линейный поиск будет выполняться каждый раз за O (n) времени. Для миллиарда комментариев будет сделано миллиард итераций.
Теперь предположим, что двоичное дерево поиска построено для comment_ID. Чтобы посмотреть любой комментарий, вам нужен log (n) time [base 2]. Так что даже для 1 миллиарда комментариев потребуется всего около 32 итераций.
Теперь рассмотрим слегка модифицированный BST, где каждый узел содержит k элементов вместо 1 (в списке) и имеет k + 1 дочерних узлов. Те же самые свойства BST соблюдаются и в этой структуре данных. То, что у нас здесь, называется B-деревом. More reading: GeeksForGeeks - B Tree Введение
Для B-дерева время поиска составляет log (n) [base k]. Следовательно, если k = 10, для 1 миллиарда записей потребуется только 9 итераций.
Все базы данных сохраняют индексы для первичных ключей в B-Trees. Следовательно, заявленная задача не будет дорогой, и вам следует разработать базу данных так, как это казалось очевидным.
PS: Вы можете построить индекс для любого столбца таблицы. По умолчанию индексы первичного ключа уже сохранены. Но будьте осторожны, не создавайте ненужных индексов, так как они занимают место на диске.