Bonjour,
Existe t'il un moyen de détecter si une table est vérouillée avant d'effectuer une requête (un SELECT) ?
Le but de savoir si la reqûete doit être exéctuée sur un réplicat ou non.
Bonjour,
Existe t'il un moyen de détecter si une table est vérouillée avant d'effectuer une requête (un SELECT) ?
Le but de savoir si la reqûete doit être exéctuée sur un réplicat ou non.
Salut,
Qu'est-ce que tu entends par exécutée sur un réplicat ?
Avec le moteur MyISAM, si la table est verrouillée en écriture le SELECT devra attendre la levée du verrou de toute façon.
En InnoDB ce sont des verrous au niveau ligne.
Je suis en train d'étudier la façon d'augmenter les perfs d'un (grosse) base de données (une quinzaine de gigas) qui risque encore de grossir.
Je pense mettre en place de la réplication afin que toutes les opérations d'écritre se fasse sur le maître et les lectures sur plusieurs esclaves.
L'idée qui se cache derriere ma question initiale, c'est: y'a t'il un moyen de mettre en place un espèce de load balancing afin de sélectionner l'esclave le plus disponible pour faire certain SELECT que je sais gourmant en ressources machine ?
Merci.
C'est tout à fait possible mais le load balancing doit être assuré par un produit tiers, ce n'est pas intégré à MySQL.
Cf http://www.oreilly.com/catalog/hpmysql/chapter/ch07.pdf ou http://dev.mysql.com/doc/refman/5.0/...onnection.html si tu programmes en Java.
MySQL Cluster pourrait aussi convenir : http://dev.mysql.com/doc/refman/5.0/...-overview.html
Merci pour ces références, je vais m'empresser de les feuilleter.
Le cluster pourrait en effet convenir mais cette solution m'est interdite pour une raison de coûtC'est vrai que sur le papier ça a l'air super alléchant (surtout quand on voit ce que MySQL nous prépare pour la version 5.1)
Partager