Está bien, vamos a ver.
arrastre a través de una gran mesa de comentarios para encontrar aquellos en el mensaje pertinente sería caro
¿Por qué cree que sería caro? Porque posiblemente crea que se realizará una búsqueda lineal cada vez tomando O (n) tiempo. Para mil millones de comentarios, se realizarán mil millones de iteraciones.
Supongamos ahora que se construye un árbol de búsqueda binaria para comment_ID. Para buscar cualquier comentario, necesita log (n) time [base 2]. Entonces, para incluso mil millones de comentarios, solo se necesitarán alrededor de 32 iteraciones.
Consideremos ahora una BST ligeramente modificada, donde cada nodo contiene k elementos en lugar de 1 (en una lista) y tiene k + 1 nodos hijos. Las mismas propiedades de BST se siguen en esta estructura de datos también. Lo que tenemos aquí se llama B-tree. Más información: GeeksForGeeks - B Tree Introduction
Para un B-Tree, el tiempo de búsqueda es log (n) [base k]. Por lo tanto, si k = 10, para 1 billón de entradas, solo se necesitarán 9 iteraciones.
Todas las bases de datos guardan los índices de las claves principales en B-Trees. Por lo tanto, la tarea indicada no sería costosa, y debería seguir adelante y diseñar la base de datos de la manera que parecía obvia.
PD: Puede construir un índice en cualquier columna de la tabla. Por defecto, los índices de clave primaria ya están almacenados. Pero tenga cuidado, no haga índices innecesarios ya que ocupan espacio en disco.
posible duplicado de [MYSQl Optimizar tabla de publicaciones de blog con comentarios] (http://stackoverflow.com/questions/3297583/mysql-optimize-table-of-blog-posts-with-comments) –
"mejor manera" ? ¿Pequeñísimo? La mayoría del uso de las características de Oracle? ¿Qué significa "lo mejor" en este contexto? –
@S. Lott: voto por "la mayor parte del uso de las características de Oracle". ¡Cuantas más funciones, mejor! : P – FrustratedWithFormsDesigner