This article summarizes and analyzes the methods of PHP's access to database clusters. Share it with everyone for your reference, the details are as follows:
There are three common methods:
1. Automatically determine whether the sql is read and select the database connection:
When instantiating the php DB class, you need to connect to two servers at once, and then select different connections based on slq. For example:
$link_w = mysql_connect($w_host,$user,$pwd); $link_r = mysql_connect($r_host,$user,$pwd); //执行sql if(preg_match("/^select/i", trim($sql))) { mysql_query($sql,$link_r); }else { mysql_query($sql,$link_w); }
The advantage of this method is that developers do not need to distinguish between reading or writing when executing SQL, and can make their own judgments at the bottom of the db class. The disadvantage is that often two connections need to be opened when only reading or writing is required.
2. Choose when calling:
When executing SQL, it is generally possible to determine whether it is writing or reading, so developers need to manually call different connections. For example:
$w_db = new DB('w'); $w_db -> query('insert into .....');
When sql is read:
$r_db = new DB('r'); $r_db -> query('select .....');
Mainly through the passed parameters to distinguish whether sql is read or written. The developer needs to make his own judgment before each call to sql.
3. Use MySQL Proxy as the middle layer proxy, which will automatically determine whether the SQL is read or written, and forward the request to the server. The advantage is that the program does not need to change any code. You only need to specify the read or write server when starting mysql proxy:
--proxy-backend-addresses --proxy-read-only-backend-addresses
Readers who are interested in more PHP-related content can check out the special topics of this site: "Summary of PHP office document operation skills (including word, excel, access, ppt)", "Summary of PHP date and time usage", "php-oriented "Introduction Tutorial on Object Programming", "Summary of PHP String Usage", "Introduction Tutorial on PHP MySQL Database Operation" and "Summary of Common PHP Database Operation Skills"
I hope this article will be helpful to everyone in PHP programming.