Maison > base de données > tutoriel mysql > Comment puis-je obtenir l'effet des index basés sur des fonctions dans MySQL ?

Comment puis-je obtenir l'effet des index basés sur des fonctions dans MySQL ?

Barbara Streisand
Libérer: 2024-12-21 11:20:12
original
966 Les gens l'ont consulté

How Can I Achieve the Effect of Function-Based Indexes in MySQL?

Index basés sur des fonctions dans MySQL

Contrairement à Oracle, MySQL ne prend pas automatiquement en charge les index basés sur des fonctions. Cependant, il existe des alternatives à considérer.

Partie de début d'une colonne

MySQL vous permet d'indexer la partie de début d'une colonne en utilisant la syntaxe suivante :

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

Cela crée un index en utilisant les cinq premiers caractères de la colonne "nom".

Déclencheurs et Colonnes supplémentaires

Pour des fonctions plus complexes, vous pouvez créer une colonne distincte avec les données indexées et utiliser des déclencheurs d'insertion/mise à jour pour garantir son remplissage correct.

Exemple

Considérons un scénario dans lequel vous souhaitez indexer une sous-chaîne d'une colonne. Vous pouvez créer une nouvelle colonne et utiliser des déclencheurs comme suit :

ALTER TABLE cust_table ADD COLUMN substring VARCHAR(255);

CREATE TRIGGER update_substring
AFTER INSERT OR UPDATE ON cust_table
FOR EACH ROW
SET NEW.substring = SUBSTRING(NEW.id, 1, 8);
Copier après la connexion

Comparaison avec les index fonctionnels

Bien que cette approche produise un effet similaire à celui des index fonctionnels, elle introduit redondance supplémentaire des données. Cependant, il permet également de définir des fonctions plus complexes et assure la cohérence des données grâce à des déclencheurs.

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