配置文件:
二进制日志 log-bin 主从复制
错误日志 log-err 默认是关闭的,记录严重警告和错误信息,看Mysql从启动到开工到关闭整个生命周期
查询日志 log 默认关闭,记录查询的sql语句,如果开启会减低Mysql整体性能
数据文件:
frm文件:存放表结构
myd文件:存放表数据
myi文件:存放表索引
Mysql逻辑架构介绍;
mysql的查询流程大致是:
1.mysql客户端通过协议与mysql服务器建立连接,发送查询语句,先检查查询缓存,如果命中,直接返回结果,否则进行语句解析
2.有一系列预处理,比如检查语句是否写正确了,然后是查询优化(比如是否使用索引扫描,如果是一个不可能的条件,则提前终止),生成查询计划,然后查询引擎启动,开始执行查询,从底层存储引擎调用API获取数据,最后返回给客户端,怎么存数据、怎么取数据,斗鱼存储引擎有关。
3.然后,mysql默认使用的BTREE索引,并且一个大方向是,无论怎么折腾sql,至少在目前来说,mysql最多只用到表中的一个索引
MyISAM 和 InnoDB
Mysql 性能因素:
1.业务需求对mysql的影响(和适合度)
2.存储定位对mysql的影响
不适合放进Mysql的数据:
二进制多媒体数据
流水队列数据
超大文本数据
需要放进缓存的数据:
系统各种配置及规则数据
活跃用户的基本信息数据
活跃用户的个性化定制信息数据
准实时的 统计信息数据
其他一些访问频繁但变更较少的数据
3.Schema设计对系统的性能印象
尽量减少对数据库访问的请求
尽量减少无用数据的查询请求
p2p中user_main 和我的账户金额冗余问题