Connexion MySQL validité du test dans la source de données : SÉLECTIONNEZ 1 ou quelque chose de mieux?

Je suis la mise en place d'un cluster de basculement sur MySQL, dans une architecture maître-esclave.
Je suis aussi de la configuration de mon JBoss source de données, et je suis à la recherche de la meilleure façon de tester ma connexion, sachant que c'est pour Alfresco (qui est à l'aide de Ibatis).

Même je praticed MySQL à de nombreuses reprises, je ne sais pas très bien le fonctionnement interne des mécanismes d'exécution dans le Serveur MySQL.

Jusqu'à présent, je suis en utilisant cette requête pour tester ma connexion SQL (comme dans ce fil : La base de données de basculer dans Jboss sources de Données)

SELECT 1;

Ici l'intégralité de la source de données.

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
    <jndi-name>alfresco-datasource</jndi-name>
    <connection-url>
        jdbc:mysql://10.1.2.13,10.1.2.14:3306/alfresco
    </connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>alfresco</user-name>
    <password>alfresco</password>
    <exception-sorter-class-name>
        org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
    </exception-sorter-class-name>


    <connection-property name="readOnly">false</connection-property>
    <failOverReadOnly>false</failOverReadOnly>

    <!-- Automatic reconnecion - desactivated to preserve transactions  -->
    <!-- http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html :
    Failover happens when the driver determines that the connection has failed (checked before every query), and falls back to the first host when it determines that the host has become available again (after queriesBeforeRetryMaster queries have been issued). -->
    <!--<autoReconnect>true</autoReconnect>-->

    <check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
    <valid-connection-checker-class-name>
        org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker
    </valid-connection-checker-class-name>


    <!-- If you're using Connector/J 3.1.8 or newer, you can use our implementation 
        of these to increase the robustness "mysql-ds.xml" 64L, 3683C of the connection 
        pool. -->
    <exception-sorter-class-name>
        com.mysql.jdbc.integration.jboss.ExtendedMysqlExceptionSorter
    </exception-sorter-class-name>
    <valid-connection-checker-class-name>
        com.mysql.jdbc.integration.jboss.MysqlValidConnectionChecker
    </valid-connection-checker-class-name>

    <metadata>
        <type-mapping>mySQL</type-mapping>
    </metadata>
</local-tx-datasource>

</datasources>

J'ai plusieurs question que je ne suis pas en mesure de répondre par moi-même:

  • Ne sera pas cette requête simple être mis en cache par Ibatis (ou n'importe quel type ou ORM) ? Cela signifierait qu'il pourrait me rendre à des résultats faux.
  • Ne pas que la requête sera trop simple ? Est-il vraiment essayer d'exécuter des mécanismes internes qui serait représentatif de l'état du serveur ? Ou cela est-il seul test de connexion ?
  • Est-il vraiment un test fiable ?
  • Est-il un autre type de test (déjà intégré avec Connecteur/J par exemple) ?
  • Performance est aussi important pour moi, c'est de SÉLECTIONNER 1 est un bon compromis entre le contrôle de la santé et de la performance

N'hésitez pas à m'indiquer quelques liens (à l'intérieur de Stackoverflow ou pas). Si cette question ont bean déjà répondu (il ne semble pas, autant que j'ai cherché), je vais évidemment supprimer ce fil.

J'aimerais beaucoup avoir des retours d'expérience de mysql développeurs ou administrateurs. Je suis à la recherche de la meilleure façon de le faire.

Merci pour votre aide.