摘要:使用 Trace 进行执行计划分析 SET OPTIMIZER_TRACE="enabled=on",END_MARKERS_IN_JSON=on; SET OPTIMIZER_TRACE_MAX_MEM_SIZE=1000000; #需要分析的SQL语句 SELECT xxx; SELECT *
阅读全文
摘要:编码与解码 什么是编码与解码 电脑是由电路板组成,电路板里面集成了无数的电阻和电容, 交流电经过电容的时候,电压比较低 记为低电平 ,用0表示,交流电流过电阻的时候,电压比较高,记为高电平,用1来表示; 所以每一个1 和0 在计算机中被称为 位,也就是bit位。然而,如果使用一个位来表示计算机中的最
阅读全文
摘要:OS: Win10 WireShark: Version 2.6.2 (v2.6.2-0-g1b3cedbc) 1、过滤方式 a、捕获级别过滤,尽量精确的捕获需要的数据包 2、从捕获的包中进行显示的过滤 http contains "showapi" or http2 "http contains
阅读全文
摘要:核心代码 1、先到该网站压缩和混淆变量名: 【可能是BUG: 每次操作后必须重新刷新页面 混淆变量名功能才会有效】 https://tool.oschina.net/jscompress/ 2、在JsHaMan的免费版中做简单处理: http://www.jshaman.com/protect_fr
阅读全文
摘要:安装脚本及加入监测脚本 #服务端 docker pull percona/pmm-server:latest docker create -v /opt/prometheus/data -v /opt/consul-data -v /var/lib/mysql -v /var/lib/grafana
阅读全文
摘要:1、常用查询 a、 vmstat 2 -S M vmstat 2 -S M procs memory swap-- io -system-- cpu r b swpd free buff cache si so bi bo in cs us sy id wa st 2 3 9 163 0 1688
阅读全文
摘要:动态注册的Controller的@RequestMapping的方法 能访问(已经执行进了controller的那些方法),但前端收不到结果,返回404。 调试跟踪源码发现: 1、controller的那些方法返回结果, 在 org.springframework.web.method.suppor
阅读全文
摘要:现象: Tomcat 在 systemctl restart tomcat 命令执行后 不自动解压通过sftp上传上去的war, 而如果直接去 bin目录执行 startup.sh 是可以的。 原因: 当前登录用户是root,sftp上传后,文件属于 root。 而 systemctl restar
阅读全文
摘要:异步 IO (Asynchronous IO - AIO) 优势: 1、串行变并行 2、IO Merge Native AIO: Mysql提供了内核级别的AIO支持,称之为 Native AIO。 Native AIO需要操作系统提供支持,Windows 和 Linux都提供,Mac OSX 没有
阅读全文
摘要:自适应哈希索引(AHI - Adaptive Hash Index) AHI有什么用处 InnoDB的索引一般是B+树的。加载到buffer pool中索引页自然也是B+树结构的。 B+树结构找数据我们都知道和树高有直接关系,一般情况下树高3~4层,所以查询也需要3~4次。 如果某些数据访问频率高且
阅读全文
摘要:redo log 能修复 部分写失效(partial page write) 这种情况吗? 不能! doublewrite架构图 脏页刷新时的doublewrite步骤 脏页flush到磁盘文件时: 1、先通过memcpy方法将该脏页复制到 doublewrite buffer中。 2、将doubl
阅读全文
摘要:第二种情况,这个一般索引页自身的可用空间不足了,也会触发合并操作, 防止积累了一大堆修改,结果真正合并写入的时候,发现该索引页不够写了。 Master Thread做合并操作的时候,是随机从Insert Buffer B+树中找一些页进行处理,这样有更好的公平性。 合并时,如果发现需要写入数据的表
阅读全文
摘要:InnoDB 存储引擎可以对 DML 操作:insert update delete 进行缓冲, 他们分别是: Insert Buffer,Purge Buffer,Delete Buffer。 SHOW VARIABLES LIKE 'innodb_change_buffering' innodb
阅读全文
摘要:新增或修改记录时,该表的普通索引(非唯一非主键)很多时候也会要做修改。 它的叶子节点的插入很大几率上是 离散随机的,非顺序操作,效率低。 通过 SHOW ENGINE INNODB STATUS 可以看到 Insert Buffer的相关信息: INSERT BUFFER AND ADAPTIVE
阅读全文
摘要:通过 SHOW ENGINE INNODB STATUS 我们可以看到如下一段内容: srv_master_thread loops: 37369 srv_active, 0 srv_shutdown, 2019561 srv_idle srv_master_thread log flush and
阅读全文
摘要:InnoDB通过LSN(long sequence number) 来标记版本。 LSN 在 页,redo log,checkpoint 都存在。 可以通过 SHOW ENGINE INNODB STATUS 查看LSN信息: LOG Log sequence number 1638196851 L
阅读全文
摘要:重做曰志缓冲(redo log buffer) 重做日志buffer一般不需要设置太大,因为默认情况下每一秒都会把重做日志缓冲刷新到日志文件。 查看redo log buffer 的大小: SHOW VARIABLES LIKE 'innodb_log_buffer_size' #默认16M inn
阅读全文
摘要:缓冲池采用改进版的LRU,中间设有midpoint分隔为 old,new两段。 查看old 和 new 的比例,即 midpoint的位置: SHOW VARIABLES LIKE 'innodb_old_blocks_pct' innodb_old_blocks_pct 37 即前面63%为new
阅读全文
摘要:1、缓冲池 缓冲池默认大小为16K。 查看缓冲池大小配置: SHOW VARIABLES LIKE 'innodb_buffer_pool_size' innodb_buffer_pool_size 134217728 缓冲池中缓存的数据页类型有: 索引页、数据页、 undo 页、插人缓冲( ins
阅读全文