J'ai installé MySQL 5.1.40 distribution de source (exécutable 64 bits x86_64) suivant ces instructions by Hivelogic et la gem mysql (2.8.1) en utilisant ARCHFLAGS = "- arch x86_64". Je l'utilise pour le développement de Ruby on Rails et mon problème est que même si MySQL fonctionne de toutes les façons, il est extrêmement lent.
Effectuez cette comparaison avec sqlite3 lors de l'exécution d'un db de rake standard: migrez en créant environ 15 tables.MySQL extrêmement lent sous Snow Leopard
MySQL:
temps rake db: migrer
0m4.882s réelles
utilisateur 0m1.426s sys
sqlite3:
temps rake db: migrer
0m2.282s réel
utilisateur 0m1.501s
sys 0m0.255s
Il faut aussi considérer que sur les 1.5s du temps d'exécution sur chaque test chargement du cadre de rails qui signifie que de sqlite3 exécute les tâches SQL dans environ 0.5-1 tandis que MySQL nécessite plus de 3 pour le même ensemble de tâches.
N'est-ce pas tout simplement faux? Quelle peut être la cause de cela? Quelqu'un rencontre le même problème?
J'ai installé et réinstallé mysql et mysql/gem ruby plusieurs fois, mais toujours avec le même résultat ... :(
Mon installation Snow Leopard est une mise à niveau et non une nouvelle installation. Pourrait-il être la cause du problème? Certains des bibliothèques obsolètes?
Merci!
Merci pour votre réponse bbum! La seule comparaison que j'ai avec une autre plate-forme est que j'ai exécuté le même test (qui utilise le db: migrate) sous Leopard et il est maintenant beaucoup plus lent sous Snow Leopard avec un temps d'exécution de 1 min. 4 min dans Snow Leopard. J'ai aussi remarqué que mysql semble "étouffer" ce qui n'est pas arrivé sous Leopard.Si j'essaie d'insérer 200 enregistrements - les premiers 30-40 vont très vite (~ 0.8ms) mais ensuite ils ralentissent drastiquement à ~ 200ms par insertion même si la complexité entre les premiers inserts et les derniers est la même. – mrD
OK-- Je suggère d'utiliser 'sample' sur Leopard et Snow Leopard pour obtenir une sorte d'aperçu des cycles du CPU. Cela peut également être dû à des changements de synchronisation de disque entre les deux systèmes d'exploitation. Dans tous les cas, il est courant d'avoir besoin d'accorder une base de données à un système particulier. – bbum