mysql王者晋级 电子书_“MySQL王者晋级之路”读书笔记-结构与引擎

最近笔者第一遍读“MySQL王者晋级之路”,此书偏向于实际运用,可以给一个正确的方向。先总结其中较为重要的知识点记录下来。

1、mysql安装问题

1.1selinux和iptables需要关闭;

1.2IO调度系统默认是cfq模式,强烈建议使用deadline模式;

1.3swap分区设置,0-100之间,0代表最大限度的使用物理内存,100代表积极使用swap分区,把内存数据搬到swap分区上,建议不分配或者4GB。

1.4文件系统选择xfs,支持动态扩容,删除文件更加方便。

1.5操作系统限制。

1.6numa关闭,不需要swap来获取内存,会导致数据库性能下降。

1.7root密码会过期,需要设置永不过期。

1.8root密码丢失,要加跳过权限表参数重启数据库。

1.9数据库连接的两种方式,tcpip,检查user权限表,判断发起请求的客户端IP是否允许连接到mysql实例;socket,要在配置文件中指定嵌套字文件路径,比如navicat。

1.10root用户和all privileges权限永用户只能归DBA所有,创建账户时专库专账号,主机IP避免使用%,可以分配一个特定的网段,可分配读写权限和读权限,不要给超管权限,不要给用户建表,改表等权限。

2、体系结构与储存引擎

2.1mysql体系结构分为两层,server层和储存引擎层,server层包括连接层和SQL层。连接层包括通信协议、线程处理、用户密码认证。线程处理是每个连接请求都会分配一个对应的线程,相当于每个SQL对应 一个线程。

2.2查询缓存通过query cache进行操作,如果数据在query cache中则直接返回结果给客户端。在生产环境中建议关闭,因为只能缓存静态数据。需要关闭query-cache-type。

2.3mysql压力测试软件sysbench,进行基准测试。

2.4innodb支持事务和行锁,并发高,数据和索引文件都存在idb文件中,并且都缓存都内存中。myISAM不支持事务,是表锁,数据文件myd,索引文件myi,只缓存索引文件不缓存数据文件。

2.5mysql数据库是单进程多线程模型的数据库,数据库实例是进程加内存的组合。innodb体系结构实际是由内存结构、线程、磁盘文件这三层组成的。innodb逻辑储存单元分为表空间、段、区、页,系统表空间存储所有数据的信息,独立表空间的每个表都有自己的表空间。

2.6行记录格式分为四种,生产环境选择dynamic进行存储。

2.7page是innodb磁盘IO的最小单位,数据是存放在page里面的,对应到内存中就是一个个buffer。

2.8后台有各种线程,负责处理不同的事务。master thread是后台线程中的主线程,优先级别最高。其内部有四个循环:主循环loop、后台循环background loop、刷新循环flush loop、暂停循环suspend loop,根据数据的运行状态在四个循环间进行切换。主循环loop中有两种操作:每一秒操作和每10秒操作。

2.9四大IO线程:read thread、write thread、redo log thread、change buffer thread。

2.10内存刷新机制:redo log重做日志文件,用于记录事务操作的变化,记录的是数据修改后的值。binlog文件用于备份恢复和主从复制。

2.11innodb三大特性:插入缓冲,将多个插入合并到一个操作中,解决IO问题。两次写(double write),写入数据文件前都会写入双写缓冲。自适应哈希索引,innodb可以监控索引的搜索,innodb注意到查询可以通过建立哈希索引得到优化,那么会自动完成这件事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值