2010-08-19 5 views
0

Je souffre de temps INSERT abyssal sur mon MacPro (mémoire quad-core 6G) exécutant mysql 5.1.49 sur snow leopard 10.6.4. J'ai essayé de comprendre où est le problème et je suis finalement arrivé à la conclusion qu'il doit s'agir de Mac OS X.MySQL MyISAM INSERT performance lente sur Mac OS X

Voici le test que j'ai exécuté. J'ai un vieux Dell avec un seul processeur pentium et 256M de mémoire et mysql 5.1.44. Le fichier ip2nation.sql contient des lignes d'insertion distincts comme celui-ci

INSERT INTO ip2nation (ip, country) VALUES(0, 'us'); 
INSERT INTO ip2nation (ip, country) VALUES(687865856, 'za') 
... 

Insertion ceux sur le réseau fonctionne assez bien

time mysql -h dell test < ip2nation.sql 

real 0m22.352s 
user 0m0.587s 
sys  0m1.556s 

exécuter le même test contre ma base de données MySQL sur mon mac et le résultat est ahurissant

time mysql test < ip2nation.sql 

real 23m46.254s 
user 0m1.199s 
sys  0m1.808s 

Les deux commandes sont exécutées à partir d'OSX. Quand je change le format des instructions INSERT SQL pour

INSERT INTO ip2nation (ip, country) VALUES 
(0, 'us') 
,(687865856, 'za') 
... 

fois sur OSX étaient beaucoup mieux

time mysql test < ip2nation.sql 

real 0m1.183s 
user 0m0.021s 
sys  0m0.009s 

Quelqu'un peut-il me l'expliquer? Je ne peux pas réécrire toutes mes applications pour utiliser cette forme d'instruction INSERT.

Répondre

0

La solution à mon problème était la config dans /etc/my.cnf

sync_binlog=1 

Je ne sais pas comment il est arrivé là-bas, mais le récupérer ou le mettre sync_binlog = 0 a certainement aidé.

0

Cela ressemble à des verrous de table. Avez-vous vérifié?

+0

bien, j'ai essayé d'écrire verrouiller la table avant de commencer avec les inserts, mais cela n'a pas fait de différence – Jamgold

0

Il fait évidemment quelque chose de 'mauvais' sur chaque ligne - et étant donné la vitesse lente presque certainement liée au disque (ce qui expliquerait l'absence d'amélioration de l'ancien Pentium). Vous pourriez être mieux avec les forums de soutien mySQL sur celui-ci. Gut feel - vous feriez peut-être mieux de mettre vos fichiers de données sur un système de fichiers Unix plus classique.

+0

Je suis d'accord avec le système de fichiers Unix classique. – Jamgold