这是关于php进阶到架构之 swoole 系列学习课程:第三节:mysql连接池
学习目标 :
了解什么是mysql连接池,以及mysql使用场景。能在实际工作使用连接池(数据库连接池,redis连接池等等)解决高并发带来的问题。
场景 :
每秒同时1000个并发,但mysql数据库同时只支持400个连接,这样mysql就会宕机
解决方案 :
使用连接池,这个连接池建立了300个与mysql的连接对象,这1000个并发有序地共享连接池里的300个连接。
连接池的使用不但解决了mysql在高并发情况下宕机问题,还额外提高了性能。因为和mysql建立连接,消耗较大。使用连接池只需要连接一次mysql。
永不断开,需要程序常驻内存,这就需要借助swoole实现。
数据库连接池是程序启动时,建立足够的数据库连接,并将这些连接组成一个连接。由程序动态的对连接池中的连接进行申请,使用,释放和回补。
<?php$mysql_server_name='localhost'
$mysql_username='root'
$mysql_password='12345678'
$mysql_database='mycounter'
$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database)
$sql='CREATE DATABASE mycounter DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
'
mysql_query($sql)
$sql='CREATE TABLE `counter` (`id` INT(255) UNSIGNED NOT NULL AUTO_INCREMENT ,`count` INT(255) UNSIGNED NOT NULL DEFAULT 0,PRIMARY KEY ( `id` ) ) TYPE = innodb'
mysql_select_db($mysql_database,$conn)
$result=mysql_query($sql)
//echo $sql
mysql_close($conn)
echo "Hello!数据库mycounter已经成功建立!"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)