php-扩展mysqlnd_ms的应用

一般来说,当mysql一个实例不够用的时候,常见的方式是mysql集群架构。对于多读的场景,如果数据不经常变的话,可以用memcached来做缓存。对于不能缓存的读取压力,可能增加mysql从实例。采取主从架构,对于所有的读取操作可以进行方便的扩展。一般扩展的方式如下:

1:在程序层改变DB层。将主从配置成参数。程序可以进行自动或手动来实现读取操作。这种方式要自己实现主从和自动负载机制,可能会稍微复杂一些,但是灵活,可以自己掌控。

2:采用第三方代理软件或自己实现一个sq代理。

上面的两种是比较常见的。现在PHP 5.3.3已经对其提供了支持。那就是mysqlnd_ms.不过这个扩展需要搭配mysqlnd一起使用.

这个扩展, 主要实现了, 连接保持和切换, 负载均衡和读写分离等, 也就是说, 这个扩展会去分别PHP发给MySQL的query,
如果是”读”的query, 就会把query发送给从库(配置中指明), 并且支持负载均衡; 而如果是”写”的query,
就会把query发送给主库.

1:修改php.ini

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini

2:在mysqlnd_ms_plugin.ini配置参数

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

3:代码连接方式如下:

$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");

然后就和你之前一样的来开发了.

更多见手册: http://php.net/mysqlnd_ms

so what’s bad outfits strategies you to in many cases reads most people create
how to lose weight fast Fashion Jewelry Trends for Winter 2010

Giorgio Armani Classico is considered on par with the Black Label line
snooki weight lossThree Things to Consider in Finding the Right One
lesbian porn
此条目发表在 网站开发 分类目录,贴了 , 标签。将固定链接加入收藏夹。

评论功能已关闭。