我们知道,MySQL的登陆方式有两种,分别是TCP/IP 和UNIX域 套接字。
1.TCP/IP 套接字方式
这种方式会在TCP/IP 连接上建立一个基于网络的连接请求,一般是client连接跑在Server上的MySQL实例,2台机器通过一个TCP/IP 网络连接。
比如:
C:Userszh>mysql -h 192.168.0.10 -uroot -p Enter password: ******* Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 6 Server version: 5.5.20-log MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>这里的客户端是Windows,向IP为192.168.0.10 的服务器上的MySQL实例发起了TCP/IP请求,连接成功后就可以使用MySQL了。
2.UNIX域套接字
UNIX域套接字并不是网络协议,所以只能在MySQL客户端和数据库实例在一台服务器上使用,用户可以在配置文件中指定套接字文件
--socket=/tmp/mysql.sock
上面两种方式是最常见的,下面我要说的是第三种,命名管道和共享内存的方式。
在Windows 2000、Windows XP、Windows 2003和Windows Vista以及在此之后的Windows操作系统中,如果两个需要通信的进程在同一台服务器上,那么可以使用命名管道。在MySQL数据库中,需在配置文件中启用--enable-named-pipe选项,除此外,MySQL还提供了共享内存的连接方式,在配置文件中添加--shared-memory。如果想使用共享内存的方式,在连接时,Mysql客户端还必须使用-protocol=memory选项。
经过测试可以发现,命名管道的方式,可以让MySQL在Windows下连接性能提高至少20%-30%。
配置如下,修改my.ini文件,添加如下选项
[mysqld] enable-named-pipe socket=MySQL然后如果你用的是JDBC客户端,只需修改URL如下:
mysql.jdbc.url=jdbc:mysql://localhost:3306/test?socketFactory=com.mysql.jdbc.NamedPipeSocketFactory&useUnicode=true&characterEncoding=UTF-8&autoReconnct=true&autoReconnectForPools=true新增的配置就是 socketFactory=com.mysql.jdbc.NamedPipeSocketFactory 这一个。需要注意的是命名管道仅能当连接到位于相同Windows物理机器上的MySQL时才能正常工作,该机器上应使用了JDBC驱动程序。在简单的性能测试中,命名管道的访问速度比标准的TCP/IP访问块30~50%。生产环境中,不少小公司或外包公司都使用的Windows服务器,这么做,性能提升还是很明显的。
关于这个参数的官方文档看这里:https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-named-pipe.html。文档中提到,配置不同,速度不同,有可能pipe会比TCP/IP慢,建议测试后使用。
版权申明:本站文章均来自网络,如有侵权,请联系01056159998 邮箱:itboby@foxmail.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有