Mysql
 sql >> Base de données >  >> RDS >> Mysql

Serait-il utile d'ajouter un index à la colonne BIGINT dans MySQL ?

Si vous avez une très grande table, la recherche de valeurs non indexées peut être extrêmement lente. En termes MySQL, ce type de requête finit par être une "analyse de table", ce qui signifie qu'elle doit tester chaque ligne de la table de manière séquentielle. Ce n'est évidemment pas la meilleure façon de procéder.

L'ajout d'un index aidera à lire vitesses, mais le prix que vous payez est légèrement plus lent écriture vitesses. Il y a toujours un compromis à faire lors d'une optimisation, mais dans votre cas, la réduction du temps de lecture serait immense tandis que l'augmentation du temps d'écriture serait marginale.

Gardez à l'esprit que l'ajout d'un index à une grande table peut prendre un temps considérable, alors testez-le par rapport aux données de production avant de l'appliquer à votre système de production. La table sera probablement verrouillée pendant la durée de ALTER TABLE déclaration.

Comme toujours, utilisez EXPLAIN sur vos requêtes pour déterminer leur stratégie d'exécution. Dans votre cas, ce serait quelque chose comme :

EXPLAIN SELECT * FROM table1 WHERE my_big_number=19287319283784