最近的文章都是用的自己拍的照片。住的地方附近有个小花园,今天下了点雨,下午去花园散步的时候觉得上面的露珠很漂亮,就顺手拍了一张。现在的年轻人生活都太忙碌,很少有时间去仔细观察大自然的美。但有时候停下来看看,可能内心会平静一些,聚焦当下,烦恼会少一点,快乐会多一点。 前两天项目上有一个查询的需求,需要用到group by某个字段后,聚合查询另一个字段的累加和(SUM聚合),同时where条件和gr
作者:jiaxin 本文教大家使用 MySQL 全文索引来实现一个简单版搜索引擎。 前言只有Innodb和myisam存储引擎能用全文索引(innodb支持全文索引是从mysql5.6开始的)char、varchar、text类型字段能创建全文索引(fulltext index type)全文索引的基于关键词的,如何区分不同的关键词了,就要用到分词(stopword)英文单词用空格,逗号
作者 | 奔跑吧CTO 一,什么叫覆盖索引网上对覆盖索引的定义有如下三种:解释一:就是select的数据列只用从索引中就能够取得,不必从数据表中读取,换句话说查询列要被所使用的索引覆盖。解释二:索引是高效找到行的一个方法,当能通过检索索引就可以读取想要的数据,那就不需要再到数据表中读取行了。如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫做覆盖索引。解释三:是非聚集组合
mysqlgroup by实现方式有三种,松散索引,紧凑索引,临时文件(文件排序)。在网上看了相关的介绍,大部分介绍都比较晦涩难懂,这里说下我的理解。在学习SQL优化时,我们都知道可以对group by进行优化的方式就是对group by引用的字段建立索引。当group by引用多个字段时,我们建立的相应的索引也应包含多个字段。对group by操作优化的原理就是让mysql利用索引,而避免进行
转载 2023-06-14 20:49:21
1792阅读
        满足GROUP BY子句的最一般的方法是扫描整个表并创建一个新的临时表,表中每个组的所有行应为连续的,然后使用该临时表来找到组并应用累积函数(如果有)。在某些情况中,MySQL能够做得更好,即通过索引访问而不用创建临时表。       为GRO
转载 2023-12-05 11:22:36
525阅读
# MySQL NOT IN语句与索引的使用 ## 1. 背景介绍 MySQL是一种开源的关系型数据库管理系统,广泛应用于互联网应用程序中。在开发过程中,经常会遇到需要使用NOT IN语句进行数据查询的需求。然而,使用NOT IN语句可能会对数据库的性能产生一定的影响。本文将介绍NOT IN语句的使用流程,并讨论在使用NOT IN语句时是否会使用到索引。 ## 2. NOT IN语句的使用流程
原创 2023-09-18 18:52:43
552阅读
# MySQL 中的 LIKE 操作与索引的关系 在 MySQL 数据库中,`LIKE` 操作符被广泛用于字符串匹配。在执行查询时,`LIKE` 操作符的使用可能影响性能,特别是在大型数据集上。本文将探讨 MySQL 中 `LIKE` 操作符是否会使用索引、如何使用以及最佳实践。我们还将通过代码示例和饼状图来进一步阐明这一主题。 ## 一、什么是 LIKE 操作符 在 MySQL 中,`LI
原创 2024-09-14 06:09:58
59阅读
GROUP BY三种处理GROUP BY的方式松散索引扫描(Loose Index Scan)紧凑索引扫描(Tight Index Scan)临时表(Temporary table) 三种方式的性能一次递减松散索引扫描无需扫描满足条件的所有索引键即可返回结果我们使用如下索引 执行SQLselect emp_no,min(salary) from salaries group by emp_no;结
概述在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。mysql中支持hash和btree索引。innodb和myisam只支持btree索引,而memory和heap存储引擎可以支持hash和btree索引1、查看当前索引使用情况我们可以通过下面语句查询当前索引使用情况:
条件: 查询出学生最后一次的成绩。全部数据显示: mysql5.6 使用sql:select a.score,a.name from ( select * from hehe order by id desc ) a group by a.name;结果: mysql5.7 使用同样语句:可以看出order by失效了 5.7官方手册给出:It must not have ORDER BY w
转载 2024-02-04 14:34:25
81阅读
先来看看今天要讲的主人翁:UPDATE `i_msg_system` set `deliver`=1 where `uid`=10000 and `msg_group`=0 and `deliver`=0;涉事表结构:CREATE TABLE `i_msg_system` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) DEFAULT
1、MySQL逻辑架构日常在CURD的过程中,都避免不了跟数据库打交道,大多数业务都离不开数据库表的设计和SQL的编写,那如何让你编写的SQL语句性能更优呢?先来整体看下MySQL逻辑架构图: MySQL整体逻辑架构图可以分为Server和存储引擎层。Server层:Server层涵盖了MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),以及存储过程、
# MySQL 大于会用索引 在使用 MySQL 数据库进行查询操作时,经常会用到比较操作符,比如大于、小于、等于等。其中,大于操作符会涉及到索引的使用问题。本文将介绍在 MySQL 中,大于操作是否会用索引的情况,并通过示例代码来说明。 ## 索引的作用 在数据库中,索引是一种数据结构,用于快速定位数据。通过在表的列上创建索引,可以提高查询效率,加快数据检索的速度。当执行查询语句时,
原创 2024-02-26 07:31:22
1104阅读
1、is null可以使用索引(网上很多文章存在误导,这个确实可以使用索引),is not null无法使用索引。2、为什么重复数据较多的列不适合使用索引?假如索引列TYPE有5个键值,如果有1万条数据,那么 WHERE TYPE = 1将访问表中的2000个数据块。再加上访问索引块,一共要访问大于2000个的数据块。如果全表扫描,假设10条数据一个数据块,那么只需访问1000个数据块,既然全表扫
转载 2023-08-31 08:41:08
1979阅读
最近在公司做了几张报表,还记得刚开始要做报表的时候都快把SQL给忘光了(当时在广州休假了1个月多,在实习期间也没咋写过SQL),回到公司的第一个需求就是做报表。于是我很不要脸地跟带我的学长说:“SQL我好像忘光了,group 分组查询好像都忘得差不多了,我得复习一下”。这篇文章来记录一下我曾经忘掉的group查询、join查询等一些比较实用/常用的SQL本文主打通俗易懂,不涵盖任何优化(适合新手观
转载 2023-11-21 15:13:12
66阅读
写这个博客也算是阴差阳错。上次做了个需求:退款列表导出(可以翻翻之前的博客,有写)。虽然事情过了那么久,现在我还是想要吐槽下,这个需求是真的坑。。这个博客大概是这么分布的:第一篇就根据实际场景来分析下索引及查询上的优化;第二篇和第三篇(如果我还能写得出来第三篇的话。。)来系统地整理下mysql索引及查询的优化。———————————————— 接下来是正文 ——————————————————那
转载 2024-06-18 05:57:25
29阅读
## MySQL GROUP BY使用索引? ### 引言 在MySQL数据库中,GROUP BY是一种常见的用于对数据进行分组和聚合计算的操作。然而,在使用GROUP BY时,我们是否可以利用索引来提高查询性能呢?本文将从索引的角度来探讨MySQLGROUP BY的工作原理,并通过代码示例来验证使用GROUP BY对查询性能的影响。 ### 索引的作用 索引是一种数据结构,用于加快数
原创 2023-09-22 05:19:27
95阅读
1  前言这节我们来聊聊索引哈。2  什么是索引当你想查阅书中某个知识的内容,你会选择一页一页的找呢?还是在书的目录去找呢?傻瓜都知道时间是宝贵的,当然是选择在书的目录去找,找到后再翻到对应的页。书中的目录,就是充当索引的角色,方便我们快速查找书中的内容,所以索引是以空间换时间的设计思想。那换到数据库中,索引的定义就是帮助存储引擎快速获取数据的一种数据结构,形象的说就
关于“mysql group by吃索引”的讨论,针对该问题的分析不仅涉及数据库的索引机制,还需要考虑MySQL的执行计划及优化器的决策过程。本文将详尽记录这个过程,涵盖以下部分: ### 协议背景 在了解MySQL的`GROUP BY`如何使用索引前,不妨回顾一下相关背景。首先,MySQL使用了多种存储引擎,而InnoDB是最常用的。`GROUP BY`常用于聚合数据,在高并发环境下,影响
原创 6月前
47阅读
mysql 用order by不走索引导致全表扫描1.DMLsql语句: select 查询字断 from 表名 where id > 10 order by c_t descexplain 查看索引执行情况idselect_typetabletypepossible_keyskeykey_lenrefrowsextra1SIMPLEtablerangeidid4null578608Usin
转载 2023-07-04 16:36:48
111阅读
  • 1
  • 2
  • 3
  • 4
  • 5