首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL索引分类相关概念辨析

索引分类 从数据结构角度可分为B+树索引、哈希索引、以及全文(FULLTEXT)索引(现在MyISAM和InnoDB引擎都支持)和R-Tree索引(用于对GIS数据类型创建SPATIAL索引); 从物理存储角度可分为聚集索引...注意:MySQL中一个数据页大小是16K,每页存的数据个数有限,和列数数据类型有关。...具体分析过程可以参考之前的文章,MySQL索引底层原理数据结构深入分析,链接地址:https://mp.weixin.qq.com/s/1C1QvOvKs_yAf81GiqGoNA HASH索引 hash...从逻辑角度 主键索引 MySQL默认使用主键建立索引。 将索引和数据(或数据地址)一块维护在一棵B+Tree上,树的非叶子节点是主键,叶子节点是主键主键对应的行记录(或数据地址)。...MySQL默认使用主键建立索引树,如果没有主键会看是否有可以唯一标识一个行记录的列,有则使用该列建立索引树,没有的话MySQL内部会创建一个隐含的列类似于rowid来建立索引树。

39940

MySQL索引分类相关概念辨析

之前的一篇《MySQL索引底层数据结构原理深入分析》很受读者欢迎,成功地帮大家揭开了索引的神秘面纱,有读者留言说分不清各种索引的概念,希望能讲一下。...确实,数据库中索引种类很多,如聚集索引、复合索引、二级索引、唯一索引...你是不是也搞得不是太清楚,那么今天就带大家一起看下索引的分类相关概念。...注意:MySQL中一个数据页大小是16K,每页存的数据个数有限,和列数数据类型有关。...图1 具体分析过程可以参考之前的文章,MySQL索引底层原理数据结构深入分析,链接地址:https://mp.weixin.qq.com/s/1C1QvOvKs_yAf81GiqGoNA HASH索引...从逻辑角度 主键索引 MySQL默认使用主键建立索引。 将索引和数据(或数据地址)一块维护在一棵B+Tree上,树的非叶子节点是主键,叶子节点是主键主键对应的行记录(或数据地址)。

47611

查询与查询的分类(一)

在 SQL 中,查询是一个查询嵌套在另一个查询中的查询,也被称为内部查询。查询可以用来创建更复杂的查询,从而实现更高级的数据检索和分析。...查询的分类查询可以根据其位置和返回结果的数量和数据类型分为以下三种类型:标量子查询:返回一个单一值的查询,通常用于作为 WHERE 子句或 SELECT 子句中的表达式。...first_name, last_name, salaryFROM employeesWHERE salary > (SELECT AVG(salary) FROM employees);在这个例子中,查询...product_category_id IN (SELECT category_id FROM categories WHERE category_name = 'Electronics');在这个例子中,查询...表查询:返回一个表格作为查询结果的查询,通常用于 FROM 子句中的表达式。

1.7K50

Mysql索引分类

但是Mysql是如何利用B 树进行查询的呢?索引的作用只是提高查询效率吗? Mysql中的B Tree索引 假设有一张教师表,里面有教师编号、名字、学科、薪资四个字段。...当然,这只是最最简洁的描述,如果name没有加唯一索引,那么mysql还需要遍历下一个块,看看搜索码值是不是也是”Mozart”。...有一个例外,当你select的字段里有复合索引里的字段,那么where语句不需要满足最左前缀匹配,Mysql也会走索引。...除了聚簇索引,mysql中的其他索引,都叫二级索引(secondary index),有时也翻译为“辅助索引”。...总结 这篇文章从一颗简单的B 树,引申出了Mysql中常见的几个索引概念: 单索引(Column Indexes):当你为一个字段建了索引时,mysql默默种了一棵树。

94710

MySQL分类

MySQL分类 每次在听别人说锁的时候,是不是会有点儿晕?(一会儿排它锁,一会儿GAP锁...)因为你站在不同的角度来说,它的名字就会不同。...下面根据几种不同的类型对锁做一个划分: 力度划分: 表级锁:表级锁是MySQL中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单,资源消耗较少,被大部分MySQL引擎支持。...页级锁:页级锁是MySQL中锁定粒度介于行级锁和表级锁中间的一种锁。表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页级,一次锁定相邻的一组记录。BDB支持页级锁。...行级锁:行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。Innodb存储引擎,默认选项。...Next-key锁:是 MySQL 的 InnoDB 存储引擎的一种锁实现,MVCC 不能解决幻读的问题,Next-Key Locks 就是为了解决这个问题而存在的。

32120

查询与查询的分类(二)

使用查询查询可以嵌套在 SELECT、FROM、WHERE 和 HAVING 子句中,以实现更复杂的数据检索和分析。...在使用查询时,需要注意以下几点:查询必须始终放在括号中;查询可以是标量、列或表查询;查询可以使用运算符、聚合函数和其他 SQL 语句;查询的结果必须与主查询的数据类型兼容。...以下是一些常见的查询用法示例:在 WHERE 子句中使用查询SELECT customer_name, credit_limitFROM customersWHERE customer_id IN...(SELECT customer_id FROM orders WHERE order_date BETWEEN '2022-01-01' AND '2022-12-31');在这个例子中,查询 (SELECT...COUNT(*) FROM orders WHERE customer_id = customers.customer_id) AS order_countFROM customers;在这个例子中,查询

1.4K10

MySQL基础篇】SQL通用语法分类

✅作者简介:大家好我是hacker707,大家可以叫我hacker,新星计划第三季python赛道Top1 个人主页:hacker707的csdn博客 系列专栏:MySQL从入门到精通 个人格言...:但行好事,莫问前程 SQL通用语法分类 什么是关系型数据库 SQL通用语法 SQL分类 结束语 什么是关系型数据库 关系型数据库(RDBMS) 概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库...1:使用表存储数据,格式统一,便于维护 2:使用SQL语言操作,标准统一,使用方便 SQL通用语法 SQL语句可以单行或多行书写,以分号结尾 SQL语句可以使用空格/缩进来增强语句可读性 MySQL...数据库的SQL语句不区分大小写,关键字建议使用大写 注释 ✅单行注释:–注释内容或#注释内容(MySQL特有) ✅多行注释:/* 注释内容 */ SQL分类 分类 全称 说明 DDL Data Definition...基础篇之SQL通用语法分类 持续更新MySQL教程,欢迎大家订阅系列专栏 MySQL从入门到精通 你们的支持就是hacker创作的动力

45310

MySQL 索引及其分类

概述 mysql 索引能够轻易将查询性能提高几个数量级,而一个“最优”索引有时比一个“好的”索引性能要高两个数量级。...在 MySQL 中,索引可以包含一个活多个列的值,因为 MySQL 只能高效地使用索引的最左前缀列,所以包含多个列的索引中列的顺序也十分重要。...索引的类型 MySQL 中,索引的类型有很多类型,能够为不同场景提供更好的性能。...说明 上述限制存在于 MySQL 5.5 以前的数据库版本中,未来的版本可能会取消某些限制。 然而,可以看到,创建表时怎样选取索引的列,以及他们的排列顺序是非常重要的。 4. 哈希索引 4.1....但是必须使用 MySQL 的 GIS 相关函数,如 MBRCONTAINS() 来维护数据,然而 MySQL 对 GIS 支持并不完善,所以大部分人不会使用这个特性。

69820
领券