Maison > base de données > tutoriel mysql > MySQL propose-t-il des index basés sur des fonctions comme Oracle ?

MySQL propose-t-il des index basés sur des fonctions comme Oracle ?

Susan Sarandon
Libérer: 2024-12-16 06:40:11
original
201 Les gens l'ont consulté

Does MySQL Offer Function-Based Indexes Like Oracle?

Index fonctionnels MySQL : une comparaison avec Oracle

Dans Oracle, la possibilité de créer des index basés sur des fonctions, telles que SUBSTRING(id, 1,8), offre une flexibilité dans la récupération des données. Cependant, MySQL offre-t-il une fonctionnalité similaire ?

Limites de MySQL

Contrairement à Oracle, MySQL ne prend pas directement en charge les index basés sur des fonctions dans son sens traditionnel. Même en version 5.6, cette fonctionnalité n'est pas disponible. Cependant, les versions ultérieures, en particulier MySQL 8.0.13 et supérieures, introduisent des index fonctionnels, corrigeant cette limitation.

Pour les versions antérieures de MySQL, l'option permettant d'indexer une partie de début d'une colonne existe, mais pas les caractères suivants. . Par exemple, ce qui suit crée un index en utilisant les cinq premiers caractères d'une colonne de nom :

create index name_first_five on cust_table (name(5));
Copier après la connexion

Approche alternative avec des déclencheurs

Pour des expressions plus complexes, les utilisateurs de MySQL peut utiliser des déclencheurs d'insertion/mise à jour pour créer une colonne distincte contenant les données indexables. Cela garantit que les données des deux colonnes restent synchronisées.

Bien que cette approche crée une redondance, elle imite les avantages en termes de performances d'un index basé sur des fonctions. Il est également conforme à 3NF, car les déclencheurs sont responsables du maintien de la cohérence des données.

En résumé, bien que MySQL ne prenne pas en charge nativement les index basés sur des fonctions comme Oracle, il fournit d'autres mécanismes pour obtenir des résultats similaires grâce à une indexation de caractères de premier plan. ou l'utilisation de déclencheurs et de colonnes supplémentaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal