Comment améliorer la vitesse de InnoDB écrit par seconde de bases de données MySQL
Sur mon serveur, en faisant insérer des enregistrements dans les bases de données MySQL est très lent. Concernant l'État du Serveur, InnoDB écrit par seconde est d'environ 20.
Je ne suis pas un expert, juste sorti de l'université. Je n'ai pas beaucoup d'expérience sur elle.
Comment pourrais-je améliorer la vitesse de InnoDB écrit? Si ne pas mettre à niveau le matériel de mon serveur, est-il de toute façon que peut le faire?
Mon serveur n'est pas bon, j'ai installé Microsoft windows server 2003 R2. Les informations sur le matériel est le suivant:
- De PROCESSEUR: Intel Xeon E5649 2.53 GHZ
- RAM: 2 GO
Tous les commentaires, je vous Remercie.
- Se débarrasser de l'inutile index permettra d'améliorer écrire performance
- Vous feriez mieux de faire que l'indice est inutile avant de vous en débarrasser.
- Si vous êtes en train de faire beaucoup de plaquettes, utiliser un auto incrémenté int pour un PK.
- Pouvez-vous mettre l'INSTRUCTION de création de la table vous sont en train de faire INSÉRER dans?
- Salut svidgen, j'ai beaucoup de plaquettes. Il y a 12 tables, chaque table est nécessaire dans des enregistrements de 2000. J'ai utilisé l'auto incrémenté pour PK
- Je vous remercie pour tous. Je vais essayer chaque suggestion.
Vous devez vous connecter pour publier un commentaire.
Il y a une bonne série de conseils ici:
Le pool de mémoire tampon est souvent dans le besoin de l'accord, mais il est plutôt d'usage général pour les lectures et écritures. Réglage pour les écritures par seconde, vous devez aussi faire attention à:
Quelques conseils:
Aussi, il serait utile si vous pouviez nous montrer votre base de données et de la structure exacte de l'instruction INSERT que vous utilisez.
veuillez définir le innodb_buffer_pool_size à 512M. Il peut augmenter les performances
SET GLOBAL innodb_buffer_pool_size=512M
SELECT @@innodb_buffer_pool_size;
Recommandations peuvent varier en fonction de votre mise en œuvre. Voici quelques notes copiés directement à partir de la documentation de MySQL:
Comme déjà mentionné, vous pouvez augmenter la taille de la InnoDB pool de mémoire tampon (innodb_buffer_pool_size variable). C'est généralement une bonne idée parce que la taille par défaut est assez petite, et la plupart des systèmes peuvent accueillir de prêt de plus de mémoire à la piscine. Cela permettra d'accroître la vitesse de la plupart des requêtes, en particulier Sélectionne (comme d'autres enregistrements seront conservés dans la mémoire tampon entre les requêtes). L'insertion de la mémoire tampon est également une partie du pool de mémoire tampon et stocker récemment enregistrements insérés, ce qui va augmenter la vitesse si vous basez avenir insère sur les valeurs de la précédente inserts. Espérons que cela aide 🙂
Si vous utilisez moteur InnoDB+disque local, essayez de comparer avec d'innodb_flush_method = O_DSYNC. Avec O_DSYNC nos insertions (entouré par TRANSACTION) a été améliorée.
https://dev.mysql.com/doc/refman/5.5/en/optimizing-innodb-diskio.html