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

Moteur de stockage MySQL pour la table de journal

Eh bien, selon votre question, InnoDB devrait faire le travail parce que :

  1. Son évolutivité est bien meilleure que MyISAM
  2. Il s'agit d'un verrouillage de ligne, donc si vous allez avoir plus d'écritures que de sélections, cela convient mieux.
  3. Enfin, puisque vous avez dit qu'ils seront rarement consultés, MyISAM n'est pas nécessaire car il est meilleur pour certaines requêtes.

Cochez ceci pour plus d'informations

MODIFIER

Eh bien, dans le commentaire, vous posez des questions sur les autres moteurs. Voici une liste complète de moteurs. Parmi eux, comme vous l'avez dit, l'archivage présente un inconvénient, les autres ne correspondent pas à votre demande. Voici une citation du site Web de MySQL :

InnoDB has been designed for maximum performance when processing large data volumes. 
Its CPU efficiency is probably not matched by any other disk-based relational database
engine.

Donc en gros :

  1. Si vous comptez utiliser MEMORY, comme vous l'avez dit, vous n'accéderez pas beaucoup aux données et votre table augmentera trop. Vous aurez besoin de beaucoup de RAM pour cela et lorsque vous redémarrerez, toutes les données seront perdues.
  2. Si vous envisagez d'utiliser MyISAM, ne le faites pas car il est conçu pour les tables où les requêtes de sélection sont plus fréquentes que l'insertion et la mise à jour.
  3. En ce qui concerne les archives, c'est votre choix. ici est une comparaison entre MyISAM et archive pour une table de journal. Je m'en tiendrai cependant à InnoDB.
  4. Je ne mentionnerai même pas Merge, Blackhole, Example et d'autres moteurs. (Je n'ai pas beaucoup de connaissances sur le moteur CSV mais d'après ce que j'ai lu, ce n'est pas un moteur approprié pour ce type de tableau.

Pour être honnête, j'avais l'habitude de passer beaucoup de temps avant de faire un pas important dans le codage. J'ai fait des recherches pendant des heures, peut-être des jours sur un problème pour voir quelle était la méthode la plus appropriée. Je vais vous dire quoi, la recherche c'est bien, mais au bout d'un moment si ça vous empêche de travailler alors il faut s'arrêter, boire un café, et faire son choix tout de suite. Par conséquent, essayez simplement celui qui vous convient le mieux et, au fur et à mesure que vous en ferez l'expérience, vous trouverez encore un meilleur moyen, en essayant vous-même. Je veux dire, je ne crois pas que Facebook ait été conçu pour un tel volume, mais au fur et à mesure de sa croissance, ils ont continué à modifier la structure en conséquence. C'est ce que je crois cependant, ce n'est peut-être pas la réalité :) Quoi qu'il en soit, j'espère que cette information vous aidera.

ÉDITION 2013

Vous trouverez ci-dessous de brèves descriptions des moteurs de stockage MySQL intégrés.

MonISAM

Ces tables incluent des optimisations supplémentaires, telles que des mécanismes avancés de cache et d'indexation, qui permettent un accès rapide aux données. En utilisant le verrouillage au niveau de la table, le moteur de stockage MyISAM permet des opérations simultanées. Lorsque les performances de lecture sont un problème, MyISAM est généralement le choix.

Mémoire

Aussi appelées tables de tas, les tables de mémoire sont idéales pour récupérer rapidement des données fréquemment utilisées qui sont rarement modifiées (telles que les codes de pays, les codes postaux ou d'autres tables de recherche). Comme son nom l'indique, les données sont stockées en mémoire et l'accès est donc beaucoup plus rapide que les données stockées sur des disques. Une restriction importante pour l'utilisation de la mémoire est que les données sont valides pendant la session MySQL. Lorsqu'il se bloque ou s'arrête, les données sont perdues.

InnoDB

Un cas où vous devrez utiliser ce moteur de stockage est lorsque vous devez utiliser des clés étrangères ou des transactions. InnoDB est plus concurrent que MyISAM car il fournit un verrouillage au niveau des lignes. Le moteur de stockage est très fiable. Un autre cas où vous voudrez utiliser ce stockage est lorsque vous avez plus d'écritures que de lectures. Lorsque vous écrivez fréquemment des données dans la table, essayez d'utiliser ce stockage car il est plus simultané que MyISAM.

Archive

Il est conçu pour stocker de grandes quantités de données dans un format compressé. L'un des cas d'utilisation de ce moteur de stockage est de stocker des données d'archives ou historiques ou des journaux de sécurité. La table n'utilise aucun index, donc pour la récupération et le stockage quotidiens des données, ce n'est pas un bon choix. Il s'agit d'un verrouillage au niveau de la ligne et les données sont décompressées à la volée lorsqu'elles sont demandées. De plus, il n'est pas possible de modifier le tableau.

Fusionner

La fusion est utilisée pour "fusionner" des tables partitionnées qui résident sur la même machine. Lorsque vous divisez une grande table en plusieurs tables plus petites et que vous y accédez simultanément à l'aide d'une table de fusion, le plus grand avantage est sa vitesse. Les recherches et les tris s'exécuteront plus rapidement car il y a moins de données dans les tables.