- 博客(7)
- 收藏
- 关注
原创 详细说明ref和eq_ref
如果将表 B 中的索引 a_id 改为唯一索引,那么执行计划中的连接操作就会变为 eq_ref,因为连接条件中的列 a_id 成为了唯一索引,所以使用了唯一性索引来进行连接操作。eq_ref 表示使用唯一性索引进行连接操作,即使用索引查找来匹配连接条件,这种方式适用于连接条件中的列是主键或唯一索引的情况。执行计划中的连接操作为 ref,因为连接条件中的列 a_id 不是主键或唯一索引,所以使用了非唯一性索引来进行连接操作。
2023-06-25 08:11:38 3178
原创 详细说明Using filesort
Using filesort是MySQL中一种查询优化方式,它通常在没有合适的索引或者查询条件中包含了不同的排序方式时使用。当MySQL无法使用索引完成排序时,它会将结果集保存到临时文件中,然后再进行排序,这个过程就是Using filesort。由于没有合适的索引,MySQL无法使用索引完成排序,因此会使用Using filesort进行排序。它会将所有记录的order_amount字段值保存到临时文件中,然后进行排序,最后返回前10条记录。
2023-06-25 07:53:40 809
原创 MySQL 中,EXPLAIN 执行计划的extra
Using where with pushed condition:表示查询使用了 WHERE 子句条件过滤数据,并且这些条件可以在索引中完成。- Using index:表示查询使用了覆盖索引,即查询的所有列都可以从索引中获取,而不需要回表查询数据行。- Using index for group-by:表示查询使用了索引完成 GROUP BY 操作。- Using index for order-by:表示查询使用了索引完成 ORDER BY 操作。- Fulltext:表示查询使用了全文索引。
2023-06-22 09:16:42 816
原创 MySQL 中,EXPLAIN执行计划的type含义
5. range:这个类型表示 MySQL 在查询时使用了索引范围查找,通常是在使用 BETWEEN、IN 或者 <、> 等操作符时使用。执行计划中的 type 字段表示 MySQL 在执行查询时使用的访问类型,也就是 MySQL 在访问表时使用的算法。6. index:这个类型表示 MySQL 在查询时使用了全索引扫描,通常是在查询结果集非常小的情况下使用。3. eq_ref:这个类型表示 MySQL 在查询时使用了唯一索引,通常是在连接操作中使用。
2023-06-22 09:06:38 1686
原创 Java责任链模式
在上面的示例中,我们定义了三个具体的处理器A、B、C,它们都实现了Handler接口,并且都有一个指向下一个处理器的引用。当请求到来时,责任链会依次将请求传递给每个处理器,直到有一个处理器能够处理该请求为止。下面是一个简单的Java责任链模式的示例,假设有三个处理器,分别是A、B、C,它们按照顺序组成一个责任链,当有请求到来时,责任链会依次将请求传递给每个处理器,直到有一个处理器能够处理该请求为止。责任链模式是一种行为型设计模式,它允许多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。
2023-06-16 09:00:22 77
原创 Java策略模式
最后,我们定义一个计算器类`Calculator`,它包含一个`operation`成员变量,用于保存当前的操作。下面是一个简单的例子,假设有一个计算器类,它可以执行加、减、乘、除四种操作。我们可以使用策略模式来实现这个计算器类,使得它可以在运行时动态地改变操作。通过使用策略模式,我们可以在运行时动态地改变计算器的操作,而不需要修改计算器类的代码。这样,我们可以更加灵活地使用计算器类,同时也更容易扩展和维护。策略模式是一种行为型设计模式,它允许在运行时动态地改变对象的行为。
2023-06-15 18:28:39 684
原创 JVM的内部结构以及作用
方法区用来存储类的信息,堆用来存储对象实例,栈用来存储方法的局部变量和操作数栈,程序计数器用来记录当前线程执行的字节码指令地址,本地方法栈用来存储本地方法的信息。JVM中有三种不同的类加载器:启动类加载器、扩展类加载器和应用程序类加载器。启动类加载器负责加载Java核心类库,扩展类加载器负责加载Java扩展库,应用程序类加载器负责加载应用程序的类。执行引擎包括解释器和即时编译器。JVM(Java虚拟机)是Java程序的运行环境,它是一个虚拟的计算机,它可以在不同的操作系统上运行Java程序。
2023-06-15 12:35:58 183
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人