基本架构
MySQL是典型的三层架构模式,在平常使用中对MySQL问题排查和优化,也应该针对具体问题,从对应的层解决问题
三层架构主要分为一下三个
- 服务层:经典的C/S架构,主要是处理连接和安全验证
- 核心层:处理MySQL核心业务
- 存储引擎层:存储引擎负责数据的存储和提取
核心层通过存储引擎的API与存储引擎通信,这样就可以屏蔽不同的存储引擎的差异,使得差异对上层透明化
mysql调优参数
这里列出了数据库调优常用的一些指令
连接数,会话数,线程数
- max_connections
max_connections参数用来设置最大连接 ( 用户 ) 数 。每个连接MySQL的用户均算作一个连接,
max_connections的默认值为100 。
MySQL无论如何都会为管理员保留一个用于登录的连接,因此实际MySQL最大可连接数为
max_connections+1。
max_connections 最大为16384 。注意:如果连接数设置的过小,会出现”Too many connections”错误
mysql> show variables like "max_connections";
- maxconnecterrors 这个关键字是为了方式客户端多次链接数据库,暴力破解密码的情况,这个数值的大小跟性能没有太大的关系,也可以适当的调大一些
- thread_concurrency:
是在特定场合下才能使用的,这个变量是针对Solaris系统的,如果设置这个变量的话,mysqld就会调用
thr_setconcurrency()
.这个函数使应用程序给同一时间运行的线程系统提供期望的线程数目。CPU核数的2倍,比如有一个双核的CPU,那么
thread_concurrency
的应该为4;2个双核的cpu, thread_concurrency的值应为8,这个应该很好理解