Je crée une application qui va stocker un flux (semi) en temps réel de quelques échelles différentes autour d'un certain emplacement. Les poids de chaque échelle seront placés dans un tableau avec seulement autant de lignes que d'échelles. L'application d'échelle alimente la base de données MySQL un nouveau poids chaque seconde, qu'une application web PHP lit toutes les 3 secondes. Il ne semble pas y avoir beaucoup de trafic sur le disque dur, ou si la différence serait négligeable, mais je me demande s'il serait plus efficace ou plus logique d'utiliser une table Memory/HEAP table MyISAM normale.Meilleur moteur de table pour la mise à jour de la table MySQL. MyISAM ou HEAP?
Répondre
Eh bien, si vous attendez une grande quantité de données, je pense que vous devez presque aller MyISAM
. Vous manquerez probablement de mémoire si vous stockez tout dans une table de mémoire. Sans compter que vous perdrez toutes vos données sur la perte de puissance avec un moteur HEAP (Gardez à l'esprit, vous pouvez le vouloir en fonction de votre cas d'utilisation) ...
Avec quoi que ce soit de 100 à 1000 de lecture simultanée/écrire des requêtes (pensez à l'utilisation typique de l'OLTP) innodb va surperformer myisam.
Il ne s'agit pas d'observations d'autres personnes, il ne s'agit pas de support transactionnel/acide, mais bien de l'architecture d'innodb qui est de loin supérieure à celle de l'ancien moteur myisam. Par exemple, innodb prend en charge les index de clé primaire groupés http://dev.mysql.com/doc/refman/5.0/en/innodb-index-types.html. En outre, innodb possède un verrouillage au niveau de la ligne qui est beaucoup plus performant en charge simultanée que le verrouillage du niveau table myisam.
Je pourrais continuer, mais Somone a déjà fourni un très bon résumé des raisons pour lesquelles InnoDB est un meilleur choix pour OLTP: http://tag1consulting.com/MySQL_Engines_MyISAM_vs_InnoDB
Je sais que cette question est de se daté et vous avez probablement fait une très bonne solution par maintenant, mais je voulais juste faire remarquer à quiconque lirait peut-être que la base de données relationnelle n'est peut-être pas la meilleure façon de résoudre ce problème. Pour moi, cela ressemble clairement à un cas où une base de données de fichiers à plat est la solution idéale. Vous auriez pu vous épargner une tonne de frais généraux en écrivant simplement ces valeurs dans un fichier binaire, puis en utilisant des opérations mathématiques simples pour sélectionner les lignes et les champs.
- 1. MySQL + MyISAM taille de la table question
- 2. Meilleure requête de mise à jour pour la table mysql
- 3. Grande table MySQL Mise à jour lente
- 4. Verrouillage de table MySQL MyISAM
- 5. Restauration MySQL sur le moteur MyISAM
- 6. empêcher les plantages de la table MyISAM mysql
- 7. Table MySQL myisam, table temporaire et index
- 8. Table de mise à jour mysql d'une autre table
- 9. mise à jour de la table via php mysql
- 10. MySQL Heap/mémoire basé table
- 11. Mysql Mise à jour avec table joint - mise à jour d'un champ de la table avec la somme du champ
- 12. Changement de moteur de table dans MySQL
- 13. Table de conversion de MyISAM à INNODB
- 14. Mettre à jour la table MySQl onDrop?
- 15. Mise à jour efficace de la table MySQL à partir de SQL Server
- 16. mise à jour par lots table mysql
- 17. MySQL: table Afficher sur la mise à jour
- 18. Hibernate: mise à jour à la somme de l'autre table
- 19. MySQL: InnoDB ou MyISAM Engine ::: quel est le meilleur pour beaucoup de sélections?
- 20. Solution de contournement pour autoriser une colonne TEXT dans la table mysql MEMORY/HEAP
- 21. Django mise à jour la table
- 22. Code PHP pour mettre à jour la table MySQL
- 23. Azure Table Pattern pour la suppression ou la mise à jour de plusieurs objets
- 24. table de mise à jour avec C# et mysql
- 25. Mise à jour de la table de masse MySQL basée sur les valeurs de la deuxième table
- 26. mise à jour Table de requête dans MySql
- 27. est le type de table myisam vraiment mieux pour une table de journal (mysql)?
- 28. mise à jour table myqsl
- 29. Mise à jour MySQL table de liaison 'catégories'
- 30. Mise à jour de mon datagridviewcomboboxcolumns de la table directement
Pourquoi MyISAM au lieu de InnoDB? J'ai toujours pensé que MyISAM était un moteur mort parce qu'il y avait tellement d'avantages pour InnoDB (verrouillage de ligne, transactions, etc.). –
MyISAM est significativement plus rapide. C'est le gros avantage. Croyez-le ou non, pour certains cas d'utilisation, le verrouillage au niveau des lignes peut être plus lent que le verrouillage au niveau de la table. Sans oublier que toutes les applications ne nécessitent pas de transactions. – ircmaxell
ircmaxell - êtes-vous familier avec cet article, il est un peu daté maintenant, mais devrait mettre votre droit sur quelques faits http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon -benchmarks-part-1/ –