À l'heure actuelle, je sélectionne les lignes de 'table01 et table02' en utilisant:MySQL PHP | "SELECT FROM table" utilisant "alphanumérique" -UUID. Vitesse vs. indexée Entier/indexé Char
SELECT t1.*,t2.* FROM table01 AS t1
INNER JOIN table02 AS t2 ON (t1.ID = t2.t1ID)
WHERE t1.UUID = 'whatever';
La colonne UUID est un index unique, du type: char (15), avec entrée alphanumérique . Je sais que ce n'est pas le moyen le plus rapide de sélectionner des données de la base de données, mais l'UUID est le seul identificateur de ligne disponible pour le serveur frontal.
Depuis que je dois sélectionner par UUID, et non ID, j'ai besoin de savoir quoi de ces deux options je devrais aller, si je dis que la table se compose de 100'000 lignes. Quelles différences de vitesse devrais-je examiner, et l'indice pour l'UUID grandirait-il et serait-il en retard par rapport à la DB?
obtenir l'ID avant de faire le « grand » select
1. $id = SELECT ID FROM table01 WHERE UUID = '{alphanumeric character}';
2. SELECT t1.*,t2.* FROM table01 AS t1
INNER JOIN table02 AS t2 ON (t1.ID = t2.t1ID)
WHERE t1.ID = $id;
Ou garder la façon dont il est maintenant, en utilisant l'UUID. Remarque: Toutes les nouvelles lignes sont créées en vérifiant si le système a généré uniqueid avant d'essayer d'insérer une nouvelle ligne. Garder la colonne toujours unique.
J'ai mis à jour les requêtes SQL pour illustrer l'utilisation de JOINS. Ce que j'ai d'abord demandé était tout à fait évident que j'ai réalisé. – dropson
Dans ce cas, aucune idée. Si vous avez de la chance, MySQL résoudra automatiquement la dépendance WHERE avant le JOIN. Votre meilleur pari est probablement de l'essayer ... –