¿Por qué podría Index negarse a trabajar?

¿Alguna vez ha visto un índice que se negó a ser utilizado incluso si existieran todas las razones para el trabajo (desde un punto de vista visual):

¿Por qué no se usaría el índice de la tierra, piensa, incluso si MySQL se menciona en «claves posibles»? ¿Te esforzarás?

Sin suerte. Incluso Force Index no puede curar el problema. Entonces, ¿qué podría ser?

Veamos la tabla de artículos:

Como puede ver, article_id es VARCHAR Y ese es el problema. La comparación de cadenas con números no utiliza la indexación. Comprueba si tu suposición es correcta:

Suena mucho mejor, ¿no?

Entonces, ¿por qué definir algo así? VARCHAR y al referirse a ella como ENTERO ? No veo una buena razón para ello, pero se ve con bastante frecuencia en las aplicaciones. Puede que sean los únicos diseñadores que estén pensando: seamos realistas VARCHAR por lo que se ajusta a las condiciones si es necesario, pero luego decide ceñirse a los números.

Si miras ENTERO es mucho mejor definir sus columnas como EN T por varias razones, pero si ha decidido usar VARCHAR (es decir, necesita que se conserven los ceros iniciales), debe referirse a esto como un punto en su aplicación usando «».

Quizás se pregunte por qué MySQL no puede usar el índice en este caso, simplemente convierta el número en la cadena y realice una búsqueda de índice.
Esto no se puede hacer ya que da como resultado un resultado incorrecto para algunas preguntas. La cuestión es que hay varias cadenas posibles para un solo valor entero; por ejemplo, está el número 5 y las cadenas «5», «05», «0005» «5.0» que tienen el mismo valor numérico pero cadenas diferentes. es por lo tanto la cubierta simple. a la cadena no funciona.

Es bastante interesante que funcione de otra manera: puede referirse a la columna completa como una cadena en la mayoría de los casos y MySQL usa el índice, ya que para cada cadena solo hay un número correspondiente. Creo que esto causa mucha confusión: habiendo visto el trabajo en una dirección, la gente asume que también funciona al revés.

Para aumentar la confusión, MySQL cita la clave como «clave posible» cuando realmente no tiene forma de usarla para la búsqueda (incluso puede hacer un escaneo de índice). Creo que las «claves posibles» se calculan antes de verificar la coincidencia del tipo.

Así que tenga cuidado de usar los tipos de referencia correspondientes en sus aplicaciones

Author: Ing. Luis

A lo largo de conocer Windows y otros sistemas operativos me eh encontrado con diversos tipos de error, ahora brindo soluciones según mi experiencia-

Deja un comentario