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

1 très grande table ou 3 grandes tables ? Performances MySQL

Il s'agit en fait d'une discussion sur Singe - Table - Héritage vs Table Per Class Héritage et manque d'héritage joint. La première est liée à la méthode A, la seconde à votre méthode B et à la méthode C consisterait à avoir tous les identifiants de vos publications dans une table et à différer les attributs spécifiques pour le groupe ou l'utilisateur - les publications sur différentes tables. Tout en ayant toujours une table de grande taille a ses impacts négatifs liés aux analyses complètes des tables, l'approche de fractionnement des tables a aussi ses propres effets. Cela dépend de la fréquence à laquelle votre application doit accéder à la liste complète des messages par rapport à la récupération de certains types de messages. Une autre considération à prendre en compte est le partitionnement des données qui peut être effectué avec MySQL ou Oracle Database, par exemple. qui est une façon d'organiser vos données dans des tables offrant des possibilités de cycle de vie des informations (quelles données sont consultées quand et à quelle fréquence, une partie peut-elle être déplacée et compressée en réduisant la taille de la base de données et en augmentant la vitesse d'accès à la partie gauche des données dans le table), qui est essentiellement divisée en trois techniques principales :partitionnement basé sur la plage, partitionnement basé sur la liste et partitionnement basé sur le hachage. une certaine période de temps a expiré. Ce qui est en effet une décision de conception d'application majeure et peut améliorer les performances est de faire la distinction entre les accès en lecture et en écriture à la base de données au niveau de l'application. pourrait configurer un MySQL - Instance pour écrire dans la base de données et un autre comme réplicant o f ceci pour les accès en lecture, bien que cela soit également discutable, principalement en ce qui concerne les RDT (décisions en temps réel), où la cohérence absolue des données à un moment donné est indispensable. L'utilisation de pools d'objets comme couche entre votre application et la base de données également est une technique pour améliorer les performances des applications bien que je ne connaisse pas encore les solutions existantes dans le monde PHP. Oracle Hot Cache en est un exemple assez sophistiqué. Vous pouvez cependant créer votre propre cache implémenté au-dessus d'une base de données en mémoire ou en utilisant Memcache.