一、什么是回表查询? 这先要从InnoDB的索引实现说起,InnoDB有两大类索引: 聚集索引(clustered index) 普通索引(secondary index) InnoDB聚集索引和普通索引有什么差异? InnoDB聚集索引的叶子节点存储行记录,因此, InnoDB必须要有,且只有一个 ...
分类:
数据库 时间:
2019-08-31 12:49:41
阅读次数:
615
在一个分布式环境中,我们习惯使用GUID做主键,来保证全局唯一,然后,GUID做主键真的合适吗? 其实GUID做主键本身没有问题,微软的很多项目自带DB都是使用GUID做主键的,显然,这样做是没有问题的。然而,SQL Server默认会将主键设置为聚集索引,使用GUID做聚集索引就有问题了。很多时候 ...
分类:
其他好文 时间:
2019-08-27 00:47:40
阅读次数:
138
我们经常说到mysql优化,优化中一种常见的方式就是对于经常查询的字段创建索引。那么mysql中有哪些索引类型呢? 一、索引分类1、普通索引:即一个索引只包含单个列,一个表可以有多个单列索引 2、唯一索引:索引列的值必须唯一,但允许有空值 3、复合索引:即一个索引包含多个列 4、聚簇索引(聚集索引) ...
分类:
数据库 时间:
2019-08-24 09:14:38
阅读次数:
146
什么是索引? 举个例子你就明白了,索引就相当于字典目录,根据目录查找你想要找的文字。如果没有目录的话,你就得一页一页的翻,看哪个文字是自己想要的。所以我们要建立索引。 什么是聚集索引,什么是非聚集索引? 一张表里面可以有多个非聚集索引,但只能有一个聚集索引。数据会按照聚集索引进行物理排序,聚集索引和 ...
分类:
数据库 时间:
2019-08-15 19:37:56
阅读次数:
102
首先我们知道MyISM和InnoDB索引都是由B+树实现的,但在索引管理数据方式上却有所不同。 InnoDB是聚集索引,数据文件是和(主键)索引绑在一起的,即索引 + 数据 = 整个表数据文件,通过主键索引到整个记录,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,因为辅助索引是以建索 ...
分类:
数据库 时间:
2019-08-12 00:51:34
阅读次数:
187
1、什么是索引 答: 索引是对数据库表中的一列或者多列的数据进行排序的一种结构,使用索引可快速访问数据表中的特定信息。 比如中国移动里边的表数据可能达到上亿,这样查询数据用索引就派上了用场,因为使用索引可以快速检索数据。 2、索引的分类 答: <1>从物理结构上 分为两类:聚集索引和非聚集索引。 聚 ...
分类:
其他好文 时间:
2019-07-30 21:24:51
阅读次数:
113
1.mysql事务原理,特性,事务并发控制2.如何解决高并发场景下的插入重复3.乐观锁和悲观锁4.常用数据库引擎之间区别5.mysql索引6.B-Tree7.mysql索引类型8.什么时候创建索引9.索引什么时候失效(模糊匹配,类型隐转,最左匹配) 10.什么是聚集索引和非聚集索引(辅助索引)11. ...
分类:
数据库 时间:
2019-07-24 16:37:43
阅读次数:
114
先上一个存储过程 根据存储过程生成一个流水号。 表结构: key列上无索引, 脚本根据key 更新表的nextValue。 在高并发下抓取到的一个死锁 抓取到的另外一个死锁: 分析:因为key列无索引,更新需要使用id聚集索引去更新,导致更新请求更新锁时失败,引发死锁问题, 解决办法: 去除id列的 ...
分类:
其他好文 时间:
2019-07-22 18:37:46
阅读次数:
119
聚集和非聚集索引 简单概括: 聚集索引就是以主键创建的索引 非聚集索引就是以非主键创建的索引 区别: 聚集索引在叶子节点存储的是表中的数据 非聚集索引在叶子节点存储的是主键和索引列 使用非聚集索引查询出数据时,拿到叶子上的主键再去查到想要查找的数据。(拿到主键再查找这个过程叫做回表) 非聚集索引也叫 ...
分类:
其他好文 时间:
2019-07-21 18:28:08
阅读次数:
103
在讲聚集索引和非聚集索引之前我们先要了解下什么是索引,想要理解索引的原理我们必须了解一种数据结构「平衡树」(非二叉)。当然也有数据库使用哈希桶做数据索引,但是目前主流都以平衡树(B-Tree索引、B+Tree索引)作为数据的默认索引; B+Tree索引 B+Tree索引是B+Tree在数据库的一种实 ...
分类:
其他好文 时间:
2019-07-08 21:06:33
阅读次数:
153