6 圣斗士Morty

尚未进行身份认证

我要认证

燃烧吧,小宇宙!

等级
TA的排名 7k+

MySQL高级 —— 查询性能优化

引言承接《MySQL高级 —— 高性能索引》,本篇博客将围绕《高性能MySQL(第三版)》第六章内容进行总结和概括。与索引的部分一样,SQL优化也是广大程序员深入MySQL的又一条必经之路。希望通过本篇博客的总结,能够为我们成为“高级工程师”添砖加瓦。本博客会从查询设计的一些基本原则开始,然后介绍一些更加深入的查询优化技巧,并介绍一些MySQL优化器的内部机制。一、查询变慢的原因MySQL执行查询时会有很多子任务,通常来说,查询的生命周期大致可以分为:从客户端,到服务器,然后在服务.

2020-05-24 20:57:06

MySQL高级 —— 高性能索引

引言最近一直在抱着《高性能MySQL(第三版)》研究MySQL相关热点问题,诸如索引、查询优化等,这阶段的学习是前一段时间MySQL基础与官方的“阅读理解”的进一步延伸。书中第五章详细阐述了如何设计高性能的索引,以及索引的诸多注意事项。之前关于索引的学习,包括《MySQL 高级 —— 复合索引简介(多列索引)》、《MySQL 高级 —— 索引实现的思考》、《MySQL 优化 —— MySQL 如何使用索引》这三篇文章,着实费了一番功夫,但随着对书中第五章内容的逐步学习,也越发觉得自己关于索引的理

2020-05-22 14:10:11

Windows误关闭资源管理器重启的办法

引言有时候Windows系统在开机后,在桌面底部的任务栏中无法正常加载必要的网络连接图标或音量图标等,导致无法手动操作音量或连接网络。这时候就会需要打开“任务管理器”重新启动“资源管理器”使其重新加载这些必要的控制图标。但是由于操作失误,直接关闭了“资源管理器”,导致任务栏被直接关闭了,桌面也成了黑屏,那么如何才能重新启动“资源管理器”呢?在任务管理器中启动资源管理器有一个简单粗暴...

2020-04-26 08:30:17

关于 OutOfMemoryError 的总结与解决方法

引言本文总结自周志明的《深入理解Java虚拟机》第二章部分内容。这部分内容,可以为后续性能调优方面的工作起到铺垫作用。一、什么是 OutOfMemoryErrorOurOfMemory 简称“OOM”, 直译为“内存耗尽”或“内存溢出”,当然,并不是真的内存耗尽了,它指的是 JVM 的几个逻辑分区的内存不够用了。在 JVM 的几个主要内存分区中(JVM 栈、本地方法栈、计数器、...

2020-03-28 19:01:16

MySQL 高级 —— 深入理解 InnoDB 与 MyISAM

引言本篇主要聚焦MySQL 存储引擎的优缺点。一、InnoDB 和 MyISAM 存储引擎的比较

2020-03-07 10:03:37

Git 初学札记(十)—— Reset 回退的三种状态解析

引言工作中经常会涉及到需要本地代码覆盖更新的操作。有时候可能是从远端git 上直接覆盖更新,或者是其他本地分支覆盖更新当前分支等等。这个时候就需要用到 reset 操作。reset 操作分为三种类型:Soft、Mixed、Hard。今天我们就来说说这三种类型究竟如何使用。一、Git 提交的三种状态在解释 reset 的三种类型之前,我们需要了解 Git 提交的三种托管状态。不论你是...

2020-02-05 11:27:19

MySQL 优化 —— EXPLAIN 执行计划详解

引言本博客总结自MySQL 官网Understanding the Query Execution Plan专题。根据我们的表、字段、索引、以及 where 子句中的条件等信息,MySQL 优化器会考虑各种技术来更高效地执行查找。一个大表中的查找不一定要读取所有记录;多表连接也不一定需要比较每条联合记录。优化器选择的执行最优查询的操作集,称为“查询执行计划”,也可以说是 EXPLAIN...

2020-02-04 20:20:51

MySQL 优化 —— MySQL 如何使用索引

引言本文翻译自MySQL 官网 :How MySQL Uses Indexes,MySQL 版本 5.7 。提升 SELECT 操作性能最好的方式就是在查询的一列或多列上建立索引。索引的行为类似指向表数据的指针,可以让查询能够快速判断哪个记录满足 WHERE 子句中的条件,然后取得这些记录的其他字段的值。所有的 MySQL 数据类型都支持索引。虽然在可能用于查询的所有字段上都建立索引...

2020-01-29 18:15:29

MySQL 高级 —— 索引实现的思考

引言最近看了一个公开课,是有关MySQL对索引设计的思考。详细讲解了几种索引实现的设计思考与利弊辨析,讨论了为什么MySQL默认情况下会使用B树索引,B+树索引又对B树做了哪些结构改进。本片博客通过个人的学习理解和总结,由几种简单的索引数据结构,逐渐展开对B+树索引的探究和思考。一、常见的索引实现索引是帮助MySQL 高效获取数据的排好序的数据结构。它可以在几十毫秒,最多几百毫秒内...

2020-01-27 12:33:49

MySQL 优化 —— ORDER BY 优化

引言本文翻译自MySQL 官网:ORDER BY Optimization,MySQL 版本:5.7。这一部分描述了MySQL何时会使用索引来满足order by子句,filesort 操作会在索引不能生效的时候被用到,以及优化器对order by的执行计划信息。order by后面有没有跟着limit,可能会返回不同的记录顺序。一、使用索引来满足 ORDER BY某些情况,M...

2020-01-23 22:01:06

MySQL 优化 —— IS NULL 优化

引言本博客翻译自 MySQL 官网:IS NULL Optimization, MySQL版本 5.7。MySQL 对 IS NULL 的优化MySQL 可以对 IS NULL 执行和常量等值判断(列名= 常量表达式,如name = 'Tom')相同的优化。MySQL 可以利用索引和范围来搜索空值。例如:SELECT * FROM tbl_name WHERE key_co...

2020-01-23 13:12:44

MySQL 优化 —— WHERE 子句优化

引言本文翻译自 MySQL 官网:WHERE Clause OptimizationWHERE 子句优化这一部分我们来讨论对 WHERE 子句的优化处理。本部分的案例都是以 SELECT 语句为例,但这些优化同样适用于 DELETE 和 UPDATE 语句中的 WHERE 子句。注意因为对 MySQL 优化器的工作一直在进行,因此并不是全部的MySQL执行优化都在本文档中说明...

2020-01-22 20:18:24

MySQL 优化 —— SQL优化概述(优化专题开篇词)

引言最近为了研究索引的知识,特地去MySQL 官网研读了一番,发现MySQL官网有比较全面的MySQL优化方案和知识背景,所以希望通过一系列文章,将官网的知识翻译总结一下,避免日后去网上胡乱搜索产生不必要的知识勘误风险。本系列文章标题都会以 “MySQL 优化” 前缀开头,有些可能是翻译,也会有少量自己的总结和试验,针对 MySQL 5.7 版本进行。当然也并不会全部将官网的优化专题翻译完...

2020-01-22 19:11:18

MySQL 高级 —— 复合索引简介(多列索引)

引言复合索引是指包含多个列的索引,单一索引仅包含一列。不论是哪种索引,都旨在加快SQL查询速度。复合索引最多支持16个列(一定不要这么做!),索引是一种有序的数列,复合索引也是如此。相对于单一索引,复合索引有一些必须注意的使用细节,否则很容易造成索引失效,降低查询速度。而要了解这些注意细节,就必须从复合索引的作用方式入手。一、复合索引的作用方式所谓“复合”,那一定是包含有多个,...

2020-01-18 23:15:43

MySQL 基础 ————高频函数总结

一、MySQL函数调用方式函数调用的基本语法:SELECT 函数(实参列表) [FROM 表]其中,对于函数,需要重点关注三点:1、函数的名称2、参数列表3、函数功能二、函数的分类在 MySQL中,函数分为两类:1、单行函数;2、分组函数。2.1 单行函数单行函数有 concat、length、ifnull 等。单行函数下还有多种分类。2.1.1...

2019-10-19 21:23:49

Java 动态代理解析

引言本博客总结自《Java 编程思想》第十四章一、实现第一个动态代理程序代理是软件设计中重要的设计思想,它允许我们在调用实际操作之前或之后解耦式地编写额外的操作,而一旦不需要这些操作了,就可以轻易的移除它们。浏览了《编程思想》中对动态代理的解释,我发现动态代理的实现也是非常简单的。想要实现动态代理,除了要借助于 Java 的运行时类型信息( RTTI :Run-Time Typ...

2020-01-02 23:51:37

Linux 实操 —— Linux 系统性能分析

引言最近配合解决压测(性能测试)方面的问题,了解到了一些可以监控 Linux 系统性能指标,如CPU、IO、内存等的工具。此篇博客主要讲解 Linux 系统监控的一些重点内容以及 sar 命令的使用。一、Linux 性能分析聚焦Linux 性能分析的重要参数包括:1、系统整体 cpu 利用率(利用率 >= 50 % 需要注意;>=70% 需要密切关注;>=9...

2020-01-02 14:50:42

Java 注解知识总结

引言本博客总结自《Java 编程思想》第 20 章。一、什么是注解注解是 Java 5 引入的一种通过反射机制实现的语法特性,开发者可以通过在类、域、方法等元素前面标记一个“标签”达到对程序的源码、类信息或运行时进行某种说明或处理的效果,尽可能地简化代码,从而使程序开发更高效。但需要注意的是,编译器要确保在其构造路径上,必须有对应注解的定义。Java 中在 1.5 之初内置了三个标...

2020-01-01 14:13:59

Linux 实操 —— 日志筛选操作(sed与wc命令介绍)

引言在处理数据交互业务场景的问题时,经常会出现需要统计日志中出现某些指定关键字的行数,或者行数,那么如何通过Linux 命令来快速统计一段时间之内,某个特定关键字出现的行数呢?这篇文章将会给你答案。一、快速统计一段时间内特定log关键字出现行数指令示例:sed -n '/2019-12-28 11:26/,/2019-12-28 12:13/p' nohup.out | grep...

2019-12-28 14:40:10

Java正则表达式总结

引言正则表达式(英文:regular expression)是用于描述字符串规则的工具,是记录文本规则的代码。它可以用来搜索、编辑、处理文本。现有编程语言都支持正则表达式的处理,但每种语言都有细微的差别。在Java 中,正则表达式的转义反斜杠要用:\\ 来表示,这是因为在《Java Language Specification》中明确规定,Java 中的一个反斜杠会用于转义Unicod...

2019-12-22 21:05:40

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。