Le moteur de mémoire est-il adéquat pour une table de lecture en lecture / de recherche?

dba.stackexchange https://dba.stackexchange.com/questions/33625

  •  31-10-2019
  •  | 
  •  

Question

J'ai une table InNODB avec seulement deux colonnes, un varchar (20) et une datetime, et environ 4 m de lignes. Ce tableau sert de liste noire pour d'autres tables, et est tronqué et recréé dans un fichier CSV de temps à autre. Il n'y a aucune écriture impliquée en plus de cela, elle n'est utilisée que pour une vérification de sélection si une clé existe, qui frappe toujours l'index pour la colonne VARCHAR.

Le problème est que ce tableau doit être consulté pour chaque opération dans tous mes systèmes, tout le temps, car s'il y a une correspondance, ce qui est très rare, l'opération doit être interrompue immédiatement. De mon profilage d'application, nous passons environ 10% du temps de la base de données en lisant.

J'envisage d'utiliser le moteur mémoire pour ce tableau. L'idée est de créer une table de base avec le moteur CSV qui charge simplement le fichier CSV au lieu de l'opération d'importation de données entière, et un script init pour remplir la table de mémoire. Je suppose que l'indice de hachage sur la colonne VARCHAR serait plus rapide pour des recherches simples, mais je ne sais pas si elle fonctionne bien avec le rapport MISS presque 100% que j'ai.

Est-ce une bonne idée d'améliorer ma vitesse de recherche?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top