¿Cuáles son los principios del índice y del índice MySQL y la optimización lenta de consultas?
El propósito del índice es mejorar la eficiencia de las consultas, lo que se puede comparar con un diccionario. Si desea buscar la palabra "mysql", definitivamente necesita ubicar la letra M, luego buscar la letra Y de abajo hacia arriba y luego encontrar el resto de sql. Si no hay un índice, es posible que tengas que leer todas las palabras para encontrar lo que buscas. ¿Qué pasa si quiero encontrar palabras que comiencen con m? ¿O una palabra que comience con ze? ¿Crees que esto no funcionará sin indicadores?
Principios de indexación
Además de los diccionarios, se pueden ver ejemplos de índices en todas partes de la vida, como horarios de trenes en estaciones de tren y catálogos de libros. Todos tienen el mismo principio. Filtramos los resultados finales reduciendo el rango de datos que queremos obtener y al mismo tiempo convertimos eventos aleatorios en eventos secuenciales, es decir, siempre usamos el mismo método de búsqueda para bloquear los datos.
Lo mismo ocurre con la base de datos, pero obviamente es mucho más complicado, porque no solo tiene que enfrentar consultas equivalentes, sino también consultas de rango (>:, lt, Between, in), consultas difusas. (me gusta), consulta de unión (o), etc. ¿Cómo se debe elegir la base de datos para manejar todos los problemas? Pensemos en el ejemplo del diccionario. ¿Se pueden segmentar los datos y luego consultar segmento por segmento? En el caso más simple, si hay 1000 datos, del 1 al 100 se divide en la primera sección, del 101 al 200 se divide en la segunda sección, del 201 al 300 se divide en la tercera sección... Si marca el número 250 Datos como este, encontrará el dato número 250. Tres párrafos. Pero si son 100.000 registros, ¿cuántos segmentos son mejores? Los estudiantes con algunos conocimientos básicos de algoritmos pensarán en árboles de búsqueda. Su complejidad promedio es lgN y su rendimiento de consulta es bueno. Pero aquí hemos pasado por alto una cuestión clave. El modelo de complejidad se basa en el mismo costo de operación cada vez. La implementación de la base de datos es compleja y los datos se almacenan en el disco. Para mejorar el rendimiento, parte de los datos se pueden leer en la memoria para calcularlos cada vez. Como sabemos que el costo de acceder al disco es aproximadamente 100.000 veces mayor que el de acceder a la memoria, un árbol de búsqueda simple no puede satisfacer escenarios de aplicaciones complejos.
Estructura de datos del índice
He hablado sobre ejemplos de indexación en la vida, los principios básicos de la indexación, la complejidad de las bases de datos y el conocimiento relacionado de los sistemas operativos. El propósito es que todos sepan que ninguna estructura de datos se crea de la nada y que debe tener sus antecedentes y escenarios de uso. Resumamos lo que necesitamos que haga esta estructura de datos. En realidad, es muy simple: controlar la cantidad de IO del disco a un orden de magnitud pequeño, preferiblemente un orden de magnitud constante. Entonces nos preguntamos: ¿puede un árbol de búsqueda de múltiples rutas altamente controlable satisfacer las necesidades? De esta manera surgió el árbol b.