C'est une question juste pour le bien de demander: p>
Saufrander tous les sujets ou techniques intermédiaires à avancés (indices en cluster, inserts en vrac, astuces d'exportation / importation, etc.), un insert prend-il plus longtemps que la grande table augmente? P>
Ceci suppose qu'il n'y a qu'une seule colonne Auto-int, ID [I.e., toutes les nouvelles lignes sont insérées en bas, où aucune mémoire ne doit être mélangée pour accueillir un positionnement spécifique de la rangée]. P>
Un lien vers un bon "Benchmarking MySQL" serait pratique. J'ai pris Oracle à l'école, et jusqu'à présent, la connaissance m'a fait peu de bien. P>
Merci tout le monde. P>
4 Réponses :
Je ne peux que partager mon expérience. J'espère que cela aide. P>
Je insère beaucoup de lignes à l'époque, sur une énorme base de données (plusieurs millions d'entrées). J'ai un script qui imprime le temps avant et après avoir exécuté les inserts. Eh bien, je n'ai pas vu de baisse des performances. p>
J'espère que cela vous a donné une idée, mais je suis sur SQLite pas sur MySQL. P>
Je vais vous donner la meilleure réponse si vous me faites me montrer une version générique de votre script de référence de performance avec des résultats de sortie d'échantillons. Merci.
Ce n'est pas un script de benchmarking, comme je l'ai dit, je imprime le temps avant et après les requêtes, alors je vois combien de temps ils prennent. J'utilise un script python et c'est la déclaration à faire: Imprimer DateTime.DateTime.NOW (). Strftime ("% h:% m:% s")
Mon expérience a été que la performance se dégrade si l'indice de jeu de données ne convient plus à la mémoire. Une fois que cela se produit, les chèques pour les index dupliqués devront toucher le disque et ralentiront considérablement. Faites une table avec autant de données que vous pensez que vous devrez faire face, et faire des tests et un réglage. C'est vraiment la meilleure façon de savoir ce que vous rencontrerez. p>
Oui, mais ce n'est pas la taille de la table en soi, mais la taille des indices qui comptent. Une fois que la réécriture d'index commence à se débrouiller sur le disque, vous remarquerez un ralentissement. Une table sans index (bien sûr, vous n'auriez jamais une telle chose dans votre base de données) ne devrait voir aucune dégradation. Une table avec des index compacts minimes peut atteindre une taille très relativement grande sans voir la dégradation. Une table avec de nombreux grands indices commencera à se dégrader plus tôt. P>
La vitesse n'est pas affectée tant que MySQL peut mettre à jour l'indice complet en mémoire, lorsqu'il commence à échanger l'index qu'il devient plus lent. C'est ce qui se passe si vous reconstruisez une énorme index instantanément à l'aide de alter Table code>. P>