一、前言1、最近好多人都在问,in和not in到底走索引吗?2、not in的性能怎么样?基于上面的2个问题,我们具体的测试一下,实践胜于雄辩。。。二、in和not in是否走索引1、准备数据--1.创建person表
CREATE TABLE person(
    [id] [int] NULL,
    [name] [nvarchar](50) NULL,
    [age] [int]            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-13 18:16:41
                            
                                1689阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            IN not in exist not exist基础知识:ALL 全表扫描,对整个表进行扫描,效率最差;Index 索引扫描,是对整个索引的扫描,如果查询的选择结果中没有包含在索引中时,那跟全表扫描的效果时一样的;Range 有范围的索引扫描;Ref 查询条件的列中使用了索引,但是索引不是唯一的,所以需要继续在该范围内查询,但是因为索引时有序的,所以只是在小范围内的查询;Const 常量查询,直            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-02 16:07:37
                            
                                283阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、字段为NULL走不走索引?      我先在本地建了一张叫test的表,用存储过程插入了一百五十多万的数据,并对code字段和name字段分别加了二级索引idx_code和idx_name。根据字段中null的占比,分两种情况讨论: 1.绝大多数是非NULL     name字段绝大多数都是非NULL,如下图所示。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-30 14:33:32
                            
                                289阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言用法讲解in, exists 执行流程是否走索引?单表查询多表涉及子查询效率如何?in 和 exists 孰快孰慢not in 和 not exists 孰快孰慢join 的嵌套循环 (Nested-Loop Join)前言最近,有一个业务需求,给我一份数据 A ,把它在数据库 B 中存在,而又比 A 多出的部分算出来。由于数据比较杂乱,我这里简化模型。然后就会发现,我去,这不就是 not i            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-18 09:22:24
                            
                                56阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            为了数据的安全性,mysql有一个安全性设置,sql_safe_updates ,当把这个值设置成1的时候,当程序要对数据进行修改删除操作的时候条件必须要走索引。刚好现在也碰到了此类问题:网上找了相关文章查看,了解到了有些时候虽然设置了索引列,但是在有些情况下他是不走索引的1,字段类型不匹配 比如int类型和varchar  比如当code是索引时  Select * from            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-22 06:04:41
                            
                                284阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            先说结论:MySQL中决定是否使用某个索引执行查询的依据,就是成本够不够小,如果成本小,即使null值很多,还是会用到索引的。自己做了个验证:一个大概3万数据的表,如果只有10多个记录是null值,is null走索引,not null和!=没走索引,如果大部分都是null值,只有部分几条数据有值,is null,not null和!=都走索引。以下是搬过来网上的验证,让大家看看,结构如下:CRE            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-24 18:11:58
                            
                                105阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            今天了解到mysql的not exists所以研究了一下和not in的区别和exists的具体作用。 下面是结合查询的信息和资料自己对 not exists的理解not in 是内外表都进行全表扫描,没有用到索引(是把外表和内表作hash 连接,即将内表和外表做一个笛卡尔积,然后按照条件进行筛选)。 而not exists的子查询依然能用到表上的索引,(exists是对外表作loop循环,每次l            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-18 11:46:19
                            
                                244阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一.建立索引的原则(规范)1.选择唯一性索引只要可以创建唯一性索引的,一律创建唯一索引(因为速度快呀)判断是否能创建唯一索引,用count(列名),count(distinct(列名))一样就能创建 2.如果该列重复值较多,则采用联合索引 3.为经常需要排序,分组,联合操作的字段建立索引,例如京东,淘宝那些产品就需要建立索引 4.为常作为查询字段的建立索引,比如你搜索            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-30 00:03:21
                            
                                35阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            in、not in、exists和not exists的区别一、exist,not exist相同点二、索引区别existnot existinnot in三、in与exists区别1、表A(小表),表B(大表)2、表A(大表),表B(小表)3.exist与in都可以实现一个目的.二者都可以用来过滤数据.4. exist的原理:5. in 与 =的区别 一、exist,not exist相同点e            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-27 21:04:43
                            
                                1227阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            (一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻            
                
         
            
            
            
            从网上搜集的资料,无论MySQL还是Oracle,都有以下结论:一、IN跟EXISTSin是把外表和内表作hash连接,先进行子查询,再进行主查询,子查询能不能匹配到数据,都会对子查询全部匹配完毕。exists是对外表作loop 循环,先进行主查询,再到子查询中过滤,若子查询匹配到结果,则退出子查询,然后返回true,该条记录被加入到结果集中。如果查询的两个表大小相当,那么用in和exists差别            
                
         
            
            
            
            SELECT简介SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。语法SELECT column_name,column_name
FROM table_name;实例SELECT name,country FROM Store;SELECT DISTINCT简介在表中,一个列可能会包含多个重复值,有时也许希望仅仅列出不同(distinct)的值。DISTINCT 关            
                
         
            
            
            
            一:构成上的区别每个MyISAM在磁盘上存储成三个文件。第一个 文件的名字以表的名字开始,扩展名指出文件类型。 .frm文件存储表定义。 数据文件的扩 展名为.MYD (MYData)。 索引文件的扩 展名是.MYI (MYIndex)。基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的 大小只受限于操作系统文件的大小,一般为 2GB &            
                
         
            
            
            
            在js字符截取函数有常用的三个slice()、substring()、substr()了,下面我来给大家介绍slice()、substring()、substr()函数在字符截取时的一些用法与区别吧。stringObject.substring(start,stop) 用于提取字符串中介于两个指定下标之间的字符。start必需。一个非负的整数,规定要提取的子串的第一个字符在 string            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-09 11:07:52
                            
                                31阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # MySQL and 索引
## 概述
在开发过程中,我们经常会使用到数据库来存储和管理数据。MySQL是一种常用的关系型数据库,而索引则是数据库中提供快速访问数据的一种重要机制。本文将介绍MySQL和索引的基本知识,并指导小白开发者如何在MySQL中使用索引。
## 流程
下面是一个简单的流程图,展示了使用MySQL和索引的基本步骤。
| 步骤 | 动作 |
|------|------            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-30 06:33:05
                            
                                177阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            文章目录实现方式大表统计问题 实现方式MyISAM引擎把一个表的总行数存在了磁盘上,因此执行count(*)的时候会直接返回这个数,效率很高。(没有过滤条件的情况下)InnoDB执行count(*)的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。InnoDB是索引组织表,主键索引树的叶子节点是数据,而普通索引树的叶子节点是主键值。所以,普通索引树比主键索引树小很多。对于count(*            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-09 08:10:17
                            
                                33阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言平时写sql写的比较多,一直没把优化相关的知识整理记录下来,本文章记录对SQL优化的一些技巧;我将结合demo(一个百万级数据表),去实践验证这些优化技巧。测试用例接下来,我们创建一个测试表并生成100w条测试数据,有助演示或验证接下来的知识-- 创建一个测试表CREATE TABLE `users` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `a`             
                
         
            
            
            
            一、索引1.数据库建立索引的原则   铁律一:天下没有免费的午餐,使用索引是需要付出代价的。   铁律二:对于查询中很少涉及的列或者重复值比较多的列,不要建立索引。   铁律三:对于按范围查询的列,最好建立索引。   铁律四:表中若有主键或者外键,一定要为其建立索引。             
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-08 19:38:41
                            
                                156阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            我们公司是做汽车服务行业SCRM门店管理系统的,其中一个功能是查出该门店的所有会员与之对应的车辆。有三张表,核心字段如下:                     需求:查出某个门店下的所有会员与车辆列表(会员姓名,车辆品牌,车牌号,车标logo)比如store_id=1的本店下的所有会员车辆列表,每次只取出20条:第一次优化分析:需要三张表相连,其中一个会员可能有多辆车,所以车辆表必然比会员表的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-12 13:43:43
                            
                                15阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            索引失效场景先看一下表结构和表数据截图,我们把number、age字段建立索引1. or语句对索引影响图一,查询年龄为10的数据,正常走了索引图二,or语句包含非索引字段name,age没有走索引图三,or语句的两个字段均有索引时,age和number正常走了索引总结:当使用了or语句时,or作用的字段均建立了索引情况下,sql才会正常走索引2.类型转换对索引的影响图四,number字段类型定义是            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-28 11:24:42
                            
                                126阅读
                            
                                                                             
                 
                
                                
                    