����ı��� PHP MySQL ���ӵĿ��ƣ��½����ӻ��һ�����ӳ��л�ȡ��������� client-server �ĵ�һ���ӷ�ʽ�����ӳذ���һ�� master ���ӣ��Ϳ�ѡ��Ŀ�� slave ���ӡ�
���ӳ��е�ÿһ�����Ӷ����Լ���״̬�����磺SQL �û���������ʱ������״̬�� ���е�����״̬���Բο� ���ӳ����л� ˵���� ����������ҪΪ���ؾ����л����ӣ�Ӧ�ÿ��ܵõ�һ����ͬ״̬�����ӡ� Ӧ�ñ����ܹ�������Щ���⡣
Example #1 ������һ�� master ��һ�� slave �IJ��
{ "myapp": { "master": { "master_0": { "host": "localhost", "socket": "\/tmp\/mysql.sock" } }, "slave": { "slave_0": { "host": "192.168.2.27", "port": "3306" } } } }
Example #2 ���壺����״̬�� SQL �û�����
<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli)
/* Of course, your error handling is nicer... */
die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
/* ���� 1���� SQL �û���������Ϊû�� SELECT ������ master ��ִ�� */
if (!$mysqli->query("SET @myrole='master'")) {
printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
/* ���� 2����Ϊ�� SELECT ������ slave ��ִ�� */
if (!($res = $mysqli->query("SELECT @myrole AS _role"))) {
printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
$row = $res->fetch_assoc();
$res->close();
printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>
�������̻������
@myrole = ''
�������˸��ؾ������ӣ�����ִ��������ѯ�� ��һ����ѯ SET @myrole='master' û���� SELECT ��ͷ��Ȼ��������ʶ������һ��Ӧ���� slave ��ִ�еIJ�ѯ������������ master ��ִ�С� ����������������� master �����У�master �����趨���ı��ˡ�
Ȼ��ִ�� SELECT @myrole AS _role ��ѯ�������ʶ��Ϊֻ����ѯ�� ���ҷ��� slave �����������������ѯ�������κ��Ѿ��趨�� SQL �û������� ����������趨���˵�һ��ʹ�õ� master �������档���Է�������ӡ @myrole = ''��
���ǿ�����Ա����ע������⣬������������������ӵı仯����� ��Ҫ������еı仯�������Ĵ����� CPU ��Դ��
��Ȼ�������壬����ͨ�� SQL hints �����