MySql数据库操作与主从配置

2014/10/07 | 星期二 分类:数据库 | 没有评论 标签: | 作者: | 982 views

MySql数据库操作与主从配置,整理日志

#清空数据表 query TRUNCATE TABLE 表名
TRUNCATE TABLE table
#创建数据库 CREATE DATABASE MYSQLDATA
#删除数据库 DROP DATABASE MYSQLDATA.

#MySql 数据导出 用mysqldum 命令行
#导出整个数据库 命令格式
mysqldump -u 用户名 -p 数据库名 >路径+数据库名.sql
mysqldump -u root -p paddy >d:\paddy.sql

#导表,数据库 paddy 表 users
#mysqldump -u 用户名 -p 数据库名 表名 >导出路径+文件名
mysqldump -u root -p paddy users >d:\users.sql

#导数据库结构 说明 1).”-d 没数据”
2).”–add-drop-table 每create 语句前增加drop table”
musqldump -u root -p -d –add-dorp-table users > d:\users.sql

#导入数据库 用source命令
#进入mysql数据库控制台
mysql -u root -p
#mysql use 选择数据库mysqlDB
use mysqlDB

#查看数据库表结构三个方法 数据表table
SHOW FULL COLUMNS table;
DESC table;
SHOW CREATE TABLE table;

#MySql主从复制配置.
数据库主从复制:一般来说是由一台主数据服务器(实际上是可以多台的)和若干台从数据库服务器组成,从服务器不断从主服务器获取bin-log日志,并执行,从而保持与主服务器数据同步。

#主从服务器复制有如下优点:
1)如果主服务器出现了问题,可以快速切换到从服务器继续提供服务器;
2)负载均衡,可以在从服务器执行数据查询操作,降低主服务器的压力(对更新不频繁的数据或对实时性要求不高的数据可以通过从服务器查询);
3)可以在从服务器上执行备份,以避免在主服务器上执行备份而影响数据服务;

#bin-log日志
#开启 bin-log 日志,配置文件(/etc/my.cnf)增加一行
log-bin = mysql-bin #可自定义路径,可写绝对路径名比如: “D:/mysql.log”
#查看 bin-log 是否开启,登录mysql 命令
mysql> show variables like ‘%bin%’;
#log-bin = ON 说明 bin-log 日志已开启

#主从配置步骤
1.设置对从服务器的数据库授权.
#方法一
grant all on *.* to slave_user1@192.168.1.101 identified by ‘123456’
#方法二
grant replication slave on *.* slave_user2@192.168.1.102 identified by ‘123456’
#赋予从机权限,有多台从机,就执行多次 slave_user1 slave_user2 是用户名,’123456′ 是密码
#刷新权限
flush privileges;
#测试登录服务器,(从服务器)101 或 102 登录主服务器100
mysql -u slave_user1 -p 123456 -h 192.18.1.100
#若能登录,说明数据库授权成功

2.修改主服务器配置my.cnf
server-id = 1 #主机标示,整数
log-big = /var/log/mysql/mysql-bin.log #确保此文件可写,二进制文件
#read-only = 0 #主机,读写都可以.
binlog-do-db = test #需要同步的数据库,多个写多行
binlog-ignore-db = mysql #不需要同步的数据库,多个写多行

3.从服务器配置my.cnf
server-id = 2;
log-bin = var/log/mysql/mysql-bin.log
replicate-do-db = test #只复制某个库
replicate-ignore-db = mysql #不复制某个库
mysql> change master to master_host=’192.168.1.100′,master_user=’slave_user1′,master_password=’123456′,master_port=3306,master_log_file=’mysql-bin.000001′,master_log_pos=100;
#仅支持5.1以上版本
#注意:(master_log_file 和 master_log_pos) 的值可以主服务器上运行 show master status 来得到

4.同步数据库
#不用太费事,先后启动主从服务器即可。

5.(从服务器)查看slave状态,使用本地账户进入数据库
show slave status\G;
若在输出中看到 Slave_IO_Running = Yes 和 Slave_SQL_Running = Yes 则说明mysql 数据库主从配置成功.
#说明:1)Slave_IO_Running 进程负责从服务器到主服务器读取binlog 日志,并写入从服务器的中继日志。
2)Slave_SQL_Running 进程负责读取并执行中继日志中的binlog日志
3)从服务器常用命令
start slave –启动复制进程.
stop slave –停止负责进程
show slave status –查看从服务器复制状态
show master logs –查看主数据库数据库状态
change master to –动态改变到主服务器的配置
show processlist –查看从服务器运行进程
4)解决服务器冲突的方法
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
mysql> slave start;

#命令解释
mysql> flush logs;
#mysql系统会自动生成一个最新的 bin-log 日志,可记录当前时刻后的所有数据库操作
mysql> reset master;
#清空所有的 bin-log 日志 (清除后剩余mysql-bin.index 和 mysql-bin.000001)
mysql> flush privileges;
#刷新权限

MongoDB通读《权威指南》学习日记

2014/09/22 | 星期一 分类:数据库 | 没有评论 标签: | 作者: | 887 views

MongoDB 是面向文档的数据库,文档是一个抽象的概念,其具体的呈现形式取决于使用的驱动和编程语言(Binary JSON) BSON

  1. MongoDB 的”文档” document 相当于 MySql 的”行” row;
  2. MongoDB 的”集合” 可以看做是没有模式的表;.
  3. MongoDB 的每个文档都有一个特殊的键”_id” 它在所有的集合中是唯一的。

#Win 下运行 mongo 命令:先进入mongo安装目录;
mongod –dbpath = d:\data\db

.使用find 或者 findOne 函数和查询文档对数据执行查询;
.使用 $ 条件查询实现范围,计划包含,不等式和其他查询;.
.有些查询用查询文档,甚至 $ 条件语句都不能表达,对于此类复杂的查询使用 $where 字句,用强大的JavaScript 来表达;
.查询返回一个数据库游标,游标只有在你需要的时候才会惰性地批量返回;
.还有很多针对游标执行的元操作,包括忽略一定数量的结果,或者限定返回结果,还有对结果排序。

GridFS 存储文件
通过数据库命令使用高级特性,使用一种特殊的集合,固定大小的集合使用GridFS存储大文件;利用MongoDB对服务器JavaScript的支持理解何为数据库引用,何时使用。

#获取运行中MongoDB 服务器统计信息
db.runCommand({“serverStatus”:1})

#backup MongoDB 数据库 paddy (文件默认保存在mongoDB安装目录下)
mongodump -d paddy -o backup
#还原数据库 paddy to paddyok
mongorestore -d paddyok –drop backup/paddy/

#搭配 master slave mongoDB 主从配置
mongo –dbpath=d:\data\db –port 27017 –master
mongo –dbpath=d:\data\slaves –port 27018 –slave –source localhost:27017

#MongoDB 诊断,复制
db.printReplicationInfo();
db.printSlaveReplicationInfo();

MongoDB 默认的存储引擎是内存映射引擎,当服务器启动后,将所有的数据文件映射到内存,然后由操作系统来负责将缓冲数据写入磁盘并将数据调入调出内存页面;

  1. MongoDB管理内存的代码非常精炼,原因就是将大部分的工作推给了操作系统;
  2. MongoDB服务器进程的虚拟大小通常非常大,超过整个数据集的大小,这没关系,操作系统会处理让那些数据常驻内存;
  3. MongoDB不能控制数据库写入到磁盘的顺序,也就是不能用预写日记提供单机的持久性;
  4. MongoDB数据库在32机器智能处理2GB数据;.

PS:通读一本数MongoDB的书,有点乱,有兴趣的就把它记录下来写入到日记,往后细读的时候再细写日记。

MySQL主从读写分离(复制)配置

2013/11/13 | 星期三 分类:数据库 | 没有评论 标签: | 作者: | 1,146 views

MySQL主从读写分离(复制)配置
主机A:192.168.1.101
从机B:192.168.1.102

1、先登录主机 A
mysql>GRANT REPLICATION SLAVE ON *.* TO slave_user@192.168.1.101 IDENTIFIED BY ‘admin888’;
#赋予从机权限,有多台丛机,就执行多次.
#slave_user@192.168.1.101 用户名@主机
#admin888 密码

2、 打开主机A的my.cnf,输入
server-id = 1 #主机标示,整数
log-bin = /var/log/mysql/mysql-bin.log #确保此文件可写
#read-only =0 #主机,读写都可以
binlog-do-db =test #需要备份数据,多个写多行
binlog-ignore-db =mysql #不需要备份的数据库,多个写多行

3、打开从机B的my.cnf,输入
server-id = 2
log-bin = /var/log/mysql/mysql-bin.log.
#(master-host =192.168.1.101(注意:MySQL5.1以后master-*形式废弃了,采用change master to)
# master-user =backup
# master-pass =123456
# master-port =3306)
#master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =test #只复制某个库
replicate-ignore-db=mysql #不复制某个库

mysql> change master to master_host=’192.168.1.101′,master_user=’master_name’,master_password=’admin888′,master_port=3306,
master_log_file=’mysql-bin.000001′,master_log_pos=107;
#注意:(master_log_file和master_log_pos)的值你可以在服务器上运行 show master status; 来得到。

4、同步数据库
不用太费事,只把主从库都启动即可自动同步,如果不嫌麻烦的话可以把主库的内容导出成SQL,然后在从库中运行一遍

5、先重启主机A的mysql,再重启从机B的mysql

6、验证

#在主机A中,mysql>show master status\G;
#在从机B中,mysql>show slave status\G;
#能看到大致这些内容.
File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
#可以在主机A中,做一些INSERT, UPDATE, DELETE 操作,看看主机B中,是否已经被修改。

mysql> show slave status\G;

如下是工作环境下两台win7桌面云电脑成功运行主从配置:
# —主从复制 (主机设置) —
[mysqld]
log-bin = “D:/xampp/mysql/data/mysql-bin.log”
binlog-do-db = nextsite #需要备份数据,多个写多行
binlog-ignore-db = mysql #不需要备份的数据库,多个写多行.
mysql>GRANT REPLICATION SLAVE ON *.* TO slave_user@192.168.1.101 IDENTIFIED BY ‘admin888′;

# 从机配置
[mysqld]
# read-only = 1
log-bin = “/xampp/mysql/data/mysql-bin.log”
replicate-do-db = nextsite
replicate-ignore-db = mysql
mysql> change master to master_host=’192.168.1.101′,master_user=’master_name’,master_password=’admin888′,
master_port=3306,master_log_file=’mysql-bin.000001′,master_log_pos=107;
mysql> stop slave;
mysql> start slave;

Window与Fedora下Mongodb安装启动配置

2013/09/07 | 星期六 分类:数据库 | 没有评论 标签: | 作者: | 1,471 views

++++++++++++++++Window+++++++++++++++++
A.win安装好mongodb
1.命令行进入安装目录,比如:
D:\>cd MongoDB
2.启动mongo并配置数据库存放路径
D:\>MongoDB>mongod –dbpath D:\MongoDB\data
3.完成,若关闭命令窗口则关闭了mongodb数据库。

B.php安装mongo扩展
1.下载对应版本的php_mongo.dll (可以从php.net官方手册,mongo模块获取安装dll)
2.php.ini加入如下语句
extension=php_mongo.dll
3.重启apache(php) ok.

C.安装rockmongo 可以从rockmongo.com获取(一个类似phpmyadmin管理mysql,管理mongodb数据库客户端)

D.配置mongo
1.启动mongo,然后cmd进入安装目录
mongo
db.addUser(“root”,”123456″)
db.auth(“root”,”123456″)
db.system.users.find()
超级管理的账号已添加成功,其他数据库也是同样的操作的。

++++++++++++++++Fedora+++++++++++++++++
#Fedora 本地环境下安装mongoDB 简单,并配置客户端连接mongo
#安装命令
yum install mongo*

# start mongod (mongodb daemon)
systemctl start mongod.service

#verify mongod is running
systemctl status mongod.service
tail /var/log/mongodb/mongodb.log

#命令行进入mongo running client
mongo

#插入一条记录,并查询 MongoDB shell version:2.0.2 connecting to:test
>db.test.save({a:1})
> db.test.find()
{ “_id” : ObjectId(“51a797fbadbd8c109311dcc2”), “a” : 1 }

#配置启动文件 customize configuration
vim /etc/mongodb.conf
systemctl restart mongod.service

#开机启动 make mongodb service automatically start at boot
systemctl enable mongod.service

#管理mongoDB 使用 RockMongo
#RockMongo是一个PHP5写的MongoDB管理工具

Redis使用总结之与Memcached异同

2013/09/07 | 星期六 分类:Redis | 数据库 | 没有评论 标签: | 作者: | 2,183 views

这是一篇转帖文,写得很好很详细,让人快速了解了redis.

Redis是什么?两句话可以做下概括:
1. 是一个完全开源免费的key-value内存数据库
2. 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings、map、 list、sets、 sorted sets

Redis不是什么?同样从两个方面来做下对比:
1. 不是sql server、mySQL等关系型数据库,主要原因是:
. redis目前还只能作为小数据量存储(全部数据能够加载在内存中) ,海量数据存储方面并不是redis所擅长的领域
. 设计、实现方法很不一样.关系型数据库通过表来存储数据,通过SQL来查询数据。而Redis通上述五种数据结构来存储数据,通过命令 来查询数据
2. 不是Memcached等缓存系统,主要原因有以下几个:
.网络IO模型方面:Memcached是多线程,分为监听线程、worker线程,引入锁,带来了性能损耗。Redis使用单线程的IO复用模型,将速度优势发挥到最大,也提供了较简单的计算功能
.内存管理方面:Memcached使用预分配的内存池的方式,带来一定程度的空间浪费 并且在内存仍然有很大空间时,新的数据也可能会被剔除,而Redis使用现场申请内存的方式来存储数据,不会剔除任何非临时数据 Redis更适合作为存储而不是cache
.数据的一致性方面:Memcached提供了cas命令来保证.而Redis提供了事务的功能,可以保证一串 命令的原子性,中间不会被任何操作打断
. 存储方式方面:Memcached只支持简单的key-value存储,不支持枚举,不支持持久化和复制等功能

一句话小结一下:Redis是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。

Redis有什么用?只有了解了它有哪些特性,我们在用的时候才能扬长避短,为我们所用:
1. 速度快:使用标准C写,所有数据都在内存中完成,读写速度分别达到10万/20万
2. 持久化:对数据的更新采用Copy-on-write技术,可以异步地保存到磁盘上,主要有两种策略,一是根据时间,更新次数的快照(save 300 10 )二是基于语句追加方式(Append-only file,aof)
3. 自动操作:对不同数据类型的操作都是自动的,很安全
4. 快速的主–从复制,官方提供了一个数据,Slave在21秒即完成了对Amazon网站10G key set的复制。
5. Sharding技术: 很容易将数据分布到多个Redis实例中,数据库的扩展是个永恒的话题,在关系型数据库中,主要是以添加硬件、以分区为主要技术形式的纵向扩展解决了很多的应用场景,但随着web2.0、移动互联网、云计算等应用的兴起,这种扩展模式已经不太适合了,所以近年来,像采用主从配置、数据库复制形式的,Sharding这种技术把负载分布到多个特理节点上去的横向扩展方式用处越来越多。

这里对Redis数据库做下小结:
1. 提高了DB的可扩展性,只需要将新加的数据放到新加的服务器上就可以了
2. 提高了DB的可用性,只影响到需要访问的shard服务器上的数据的用户
3. 提高了DB的可维护性,对系统的升级和配置可以按shard一个个来搞,对服务产生的影响较小
4. 小的数据库存的查询压力小,查询更快,性能更好

写到这里,可能就会有人急不可待地想用它了,那怎么用呢?可以直接到官方文档,里面帮我们整理好了各个语言环境下的客户端,主要有Ruby、Python、 PHP、Perl、Lua、Java、C#….有几种语言,我也没见过,所以就不多说了,你懂的….

最后,把我使用过程中的一些 经验与教训,做个小结:
1. 要进行Master-slave配置,出现服务故障时可以支持切换。
2. 在master侧禁用数据持久化,只需在slave上配置数据持久化。
3. 物理内存+虚拟内存不足,这个时候dump一直死着,时间久了机器挂掉。这个情况就是灾难!
4. 当Redis物理内存使用超过内存总容量的3/5时就会开始比较危险了,就开始做swap,内存碎片大
5. 当达到最大内存时,会清空带有过期时间的key,即使key未到过期时间.
6. redis与DB同步写的问题,先写DB,后写redis,因为写内存基本上没有问题
阅读全文

Redis与redis主从复制

2013/04/30 | 星期二 分类:数据库 | 没有评论 标签: , | 作者: | 1,438 views

redis是一个开源的key-value数据库,它又经常被认为是一个数据结构服务器。因为它的value不仅包括基本的string类型还有list,set,sorted set和hash类型。当然这些类型的元素也都是string类型。也就是说list,set这些集合类型也只能包含string 类型。

redis可以在这些类型上做很多原子性的操作,比如对一个字符value追加字符串(APPEND命令)。加加或者减减一个数字字符串(INCR命令,当 然是按整数处理的).可以对list类型进行push,或者pop元素操作(可以模拟栈和队列)。对于set类型可以进行一些集合相关操作 (intersection union difference)。.

memcache也有类似与++,–的命令,不过memcache的 value只包括string类型。远没有redis的value类型丰富。和memcahe一样为了性能。redis的数据通常都是放到内存中的。当然 redis可以每间隔一定时间将内存中数据写入到磁盘以防止数据丢失。redis也支持主从复制机制(master-slave replication)。redis的其他特性包括简单的事务支持和 发布订阅(pub/sub)通道功能,而且redis配置管理非常简单。还有各种语言版本的开源客户端类库。

在此,简单描述下redis主从复制:redis主从复制配置和使用都非常简单。通过主从复制可以允许多个slave server拥有和master server相同的数据库副本。

redis主从复制的一些特点:
1.master可以有多个slave;
2.除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构;
3.主从复制不会阻塞master。也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理client发来的请求。相反slave在初次同步数据时则会阻塞不能处理client的请求。.
4.主从复制可以用来提高系统的可伸缩性,我们可以用多个slave 专门用于client的读请求,比如sort操作可以使用slave来处理。也可以用来做简单的数据冗余;
5.可以在master禁用数据持久化,只需要注释掉master 配置文件中的所有save配置,然后只在slave上配置数据持久化。

下面介绍下主从复制的过程:
当设置好slave服务器后,slave会建立和master的连接,然后发送sync命令。无论是第一次同步建立的连接还是连接断开后的重新连接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存起来。后台进程完成写文件后,master就发送文件给slave,slave将文件保存到磁盘上,然后加载到内存恢复数据库快照到slave上。接着master就会把缓存的命令转发给slave。而且后续master收到的写命令都会通过开始建立的连接发送给slave。从master到slave的同步数据的命令和从client发送的命令使用相同的协议格式。当master和slave的连接断开时slave可以自动重新建立连接。如果master同时收到多个 slave发来的同步连接命令,只会使用启动一个进程来写数据库镜像,然后发送给所有slave。.

redis如何配置,主从复制的:配置slave服务器很简单,只需要在配置文件中加入如下配置
slaveof 192.168.1.1 6379 #指定master的ip和端口

那么我们如何判断哪个是主哪个是从呢?我们只需调用info这个命令就可以得到主从的信息了,我们在从库上执行info命令

备注:里面有一个角色标识,来判断是主库还是从库,对于本例是一个从库,同时还有一个master_link_status用于标明主从是否异步,如果此值=up,说明同步正常;如果此值=down,说明同步异步;db0:keys=1,expires=0, 用于说明数据库有几个key,以及过期key的数量。

参考学习:http://www.cnblogs.com/redcreen/tag/redis/

Mysql数据库优化

2013/03/31 | 星期日 分类:数据库 | 没有评论 标签: , | 作者: | 1,540 views

Mysql数据库优化,对于一个以数据为中心的应用,数据库的好坏直接影响到程序的性能,因此数据库性能至关重要!从以下几个方面了解读:恰当的硬件资源、数据库设计、sql语句优化、数据库参数配置

A.合理的硬件资源,Mysql读写分离,数据库集群
2. 如果数据库压力很大,一台机器支撑不了,那么可以用mysql复制实现多台机器同步,将数据库的压力分散。主库master用来写入,slave1—slaveN都用来做select,每个数据库分担的压力小了很多。.
3.利用中间层(中间件)来实现这个代理,对程序来读写哪些数据库是透明的。比如官方有个mysql-proxy。或者使用新浪的amobe for mysql,也可达到这个目的,结构流程图如下 Master_slave

B.数据库设计

1.三范式与适当的数据冗余,已达到高查询效率的目的。

2.适当的建立索引:普通索引INDEX,唯一索引UNIQUE INDEX,主键索引PRIMARY KEY(属于唯一索引一种),全文索引FULLTEXT;另外索引可以是(单列索引与多列索引),还可以对长字段支持前缀索引。
a.选择适当的字段类型,特别是主键
b.效率问题:选择字段的一般原则是保小不保大,能用占用字节小的字段就不用大字段。比如主键用自增类型!
c.外键表示清楚,方便建立索引.
d.Example:datetime和timestamp,datetime占用8个字节,而timestamp占用4 个字节,只用了一半,而timestamp表示的范围是1970—2037,对于大多数应用,尤其是记录什么考试时间,登录时间这类信息,绰绰有余。.

3.对表进行水平划分:单表记录超过千万条时考虑对表水平切分:划分依据,有利于程序的简单实现,也可以充分利用水平分表的优势。

4.对表进行垂直划分:记录不多,但占用空间大的表,对字段长占空间大的数据拆分出来,比如:表中的text字段分拆,减少检索表时执行I/O以提高性能,分拆表与原表是一对一的关系。

5.文件、图片等大文件用文件系统存储,不用数据库,Mysql数据库只存储图片路径。

6.掌握表的写入时机,宁可集中批量操作,避免频繁读写:Example 文章访问数据统计,要求不是实时更新的情况下,可以夜深人静的时候批量处理。

7.选择合适的引擎:Mysql提供了很多种引擎,用得最多的是myisam,innodb,memory这三类。

C.SQL语句优化

1.Sql语句优化工具
a.慢日志
如果发现系统慢了,又说不清楚是哪里慢,那么就该用这个工具了。只需要为mysql配置参数,mysql会自己记录下来慢的sql语句。配置很简单,参数文件里配置:
slow_query_log=d:/slow.txt
long_query_time = 2
就可以在d:/slow.txt里找到执行时间超过2秒的语句了。

b.mysqldumpslow.pl
慢日志文件可能会很大,让人去看是很难受的事。这时候我们可以通过mysql自带的工具来分析。这个工具可以格式化慢日志文件,对于只是参数不同的语句 会归类类并,比如有两个语句select * from a where id=1 和select * from a where id=2,经过这个工具整理后就只剩下select * from a where id=N,这样读起来就舒服多了。而且这个工具可以实现简单的排序,让我们有的放矢。
2.Explain 很强大,SQL分析.
a.用explain可以看到mysql执行计划,详情请查手册。
b.借助于EXPLAIN,可以知道什么时候必须为表加入索引以得到一个使用索引来寻找记录的更快的SELECT。
3. 如果什么都做不了,试试全索引扫描

D.Mysql数据库参数配置
1.innodb_additional_mem_pool_size
2.innodb_buffer_pool_size
3.myisam,需要调整key_buffer_size
当然调整参数还是要看状态,用show status语句可以看到当前状态,以决定改调整哪些参数
Cretated_tmp_disk_tables 增加tmp_table_size
Handler_read_key 高表示索引正确 Handler_read_rnd高表示索引不正确
Key_reads/Key_read_requests 应小于0.01 计算缓存损失率,增加Key_buffer_size
Opentables/Open_tables 增加table_cache
select_full_join 没有实用索引的链接的数量。如果不为0,应该检查索引。
select_range_check 如果不为0,该检查表索引。.
sort_merge_passes 排序算法已经执行的合并的数量。如果该值较大,应增加sort_buffer_size
table_locks_waited 不能立即获得的表的锁的次数,如果该值较高,应优化查询
Threads_created 创建用来处理连接的线程数。如果Threads_created较大,要增加 thread_cache_size值。
缓存访问率的计算方法Threads_created/Connections。

参考文档:http://www.cnblogs.com/villion/archive/2009/07/23/1893765.html
归档与总结,并加以消化。