Une requête :
SELECT COUNT(online.account_id) cnt from online;
Mais la table en ligne est également modifiée par un événement, de sorte que je peux fréquemment voir le verrouillage en exécutant show processlist
.
Existe-t-il une grammaire dans MySQL qui peut faire en sorte que l'instruction select ne provoque pas de verrouillages ?
Et j'ai oublié de mentionner plus haut que c'est sur une base de données MySQL esclave.
Après avoir ajouté dans my.cnf:transaction-isolation = READ-UNCOMMITTED
l'esclave rencontrera l'erreur :
Erreur "L'enregistrement binaire est impossible. Message : Le niveau de transaction 'READ-UNCOMMITTED' dans InnoDB n'est pas sûr pour le mode d'enregistrement binaire 'STATEMENT'' sur une requête.
Alors, existe-t-il un moyen compatible de faire cela ?
5 votes
Pour ceux qui se posent cette question et qui ont des difficultés avec les serrures de leurs tables : La façon dont mySQL utilise les verrous en interne dépend du moteur de stockage. Lisez la réponse de @zombat ci-dessous.