上一页 1 2 3 4 5 6 7 ··· 12 下一页
摘要: Flush neighbor page 1、工作原理 2、参数控制 AIO 1、开启异步IO 一、刷新邻接页功能 1、工作原理 当刷新一个脏页时,innodb存储引擎会检测该页所在区(extent)的所有页,如果是脏页,那么一起进行刷新。这样做的好处显而易见,通过AIO可以将多个IO写入操作合并为一 阅读全文
posted @ 2017-07-31 20:13 GeaoZhang 阅读(2825) 评论(0) 推荐(0) 编辑
摘要: 一、索引的资源消耗分析 1、索引三大特点 1、小:只在一个到多个列建立索引 2、有序:可以快速定位终点 3、有棵树:可以定位起点,树高一般小于等于3 2、索引的资源消耗点 1、树的高度,顺序访问索引的数据页,索引就是在列上建立的,数据量非常小,在内存中; 2、数据之间跳着访问 1、索引往表上跳,可能 阅读全文
posted @ 2017-07-28 20:04 GeaoZhang 阅读(19622) 评论(9) 推荐(4) 编辑
摘要: # 脏页刷盘的风险 两次写的原理机制 1、解决问题 2、使用场景 3、doublewrite的工作流程 4、崩溃恢复 # doublewrite的副作用 1、监控doublewrite负载 2、关闭doublewrite场景 一、脏页刷盘风险 关于IO的最小单位: 1、数据库IO的最小单位是16K( 阅读全文
posted @ 2017-07-26 20:22 GeaoZhang 阅读(27897) 评论(7) 推荐(3) 编辑
摘要: 一、关于IOT:索引组织表 表在存储的时候按照主键排序进行存储,同时在主键上建立一棵树,这样就形成了一个索引组织表,一个表的存储方式以索引的方式来组织存储的。 所以,MySQL表一定要加上主键,通过主键来访问MySQL表的性能是最好: 1、显式定义主键:primary key 2、隐式定义主键:如果 阅读全文
posted @ 2017-07-25 19:06 GeaoZhang 阅读(9908) 评论(0) 推荐(3) 编辑
摘要: 后台清理工作:脏页刷盘、undo回收 1、page cleaner thread:刷新脏页 2、purge thread:清空undo页、清理“deleted”page 一、innodb_page_cleaners page cleaner线程从buffer pool中刷脏页的线程数量。 1、5.7 阅读全文
posted @ 2017-07-23 17:11 GeaoZhang 阅读(4902) 评论(1) 推荐(1) 编辑
摘要: 一、关于一个SQL的简单的工作过程 1、工作前提描述 1、启动MySQL,在内存中分配一个大空间innodb_buffer_pool(还有log_buffer) 2、多用户线程连接MySQL,从内存分配用户工作空间(其中排序空间) 3、磁盘上有数据库文件、ib_logfile、tmp目录、undo 阅读全文
posted @ 2017-07-20 20:08 GeaoZhang 阅读(8829) 评论(1) 推荐(2) 编辑
摘要: 案例描述: 通过iostat发现存储的写性能长期维持在10MB左右,而且因为写性能差已经导致数据库性能变差; 两个小时以后,iostat发现系统的写性能已经能够到100MB以上,数据库性能也恢复正常。 也就是说,在对系统、数据库监控中,出现了性能波谷,存储写入性能严重抖动,为什么? 一、原理过程 由 阅读全文
posted @ 2017-07-15 20:50 GeaoZhang 阅读(3557) 评论(1) 推荐(2) 编辑
摘要: 案例描述: 一个普通的事务提交,在应用里面会提示commit超时,失败。 一、理论知识 1、关于commit原理,事务提交过程 1、寻找修改的数据页: 1、如果该数据页在内存中,则直接是内存读; 2、如果该数据页内存中没有,物理读,就从磁盘调入内存; 2、磁盘中的undo页调入内存; 3、先将原来的 阅读全文
posted @ 2017-07-14 19:32 GeaoZhang 阅读(4081) 评论(1) 推荐(0) 编辑
摘要: 一、存储结构分析 MySQL存储结构图: 解析: 1、读操作:内存读-->cache缓存读-->磁盘物理读 读取到的数据会按上述顺序往回送。 2、写操作:内存数据直接写入cache缓存(非常快)-->写入disk 由上可知,MySQL之所以读写速度快,cache在其中起到了关键作用。 1、Cache 阅读全文
posted @ 2017-07-12 21:00 GeaoZhang 阅读(20188) 评论(6) 推荐(1) 编辑
摘要: Q:innodb buffer pool和Qcache的缓存区别? A: 1、Qcacche缓存的是SQL语句及对应的结果集,缓存在内存,最简单的情况是SQL一直不重复,那Qcache的命令率肯定是0; 2、buffer pool中缓存的是整张表中的数据,缓存在内存,SQL再变只要数据都在内存,那么 阅读全文
posted @ 2017-07-10 21:17 GeaoZhang 阅读(3569) 评论(3) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 12 下一页