Existe-t-il un moyen d'obtenir des requêtes mysql pour ne pas prendre de verrous sur les tables myisam? Mon problème semble être que mon indexeur Sphinx Search prend un verrou sur une de mes tables myisam depuis plus de 60 qui semble faire attendre les instructions de mise à jour sur les verrous qui seront libérés, ce qui rendra d'autres requêtes en attente des instructions de mise à jour compléter. L'indexeur utilise mysql_use_result et effectue une grande partie du travail d'indexation avant d'appeler mysql_free_result. C'est ma meilleure estimation de ce qui se passe au moins mais s'il vous plaît faites le moi savoir si cela vous semble faux.Pourquoi les requêtes mysql prennent-elles le verrou de la table dans l'isolation sans être validées?
Une façon de résoudre le problème semble être de subdiviser les requêtes indexeur par des plages id. Mais il semble que je ne devrais pas avoir à faire cela car je n'ai vraiment pas besoin de cette requête pour empêcher toute autre requête de s'exécuter en même temps. La performance est beaucoup plus importante que la cohérence dans ce cas d'utilisation.
Merci!
http://stackoverflow.com/questions/917640/any-way-to-select-without-causing-locking-in-mysql –
Je pense que j'ai trouvé une solution potentielle qui consiste à "définir une variable globale low_priority_updates = 1". cela devrait permettre à certaines requêtes de ne pas attendre l'instruction de mise à jour. Je rapporterai si cela fonctionne. – Peder
les niveaux d'isolement ne sont pas très significatifs avec les tables myisam, utilisez innodb si vous avez besoin d'un support de transaction – nos