数据库中的“紧左原则”是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库中的“紧左原则”是啥意思?相关的知识,希望对你有一定的参考价值。

总是看见“紧左原则”,但是具体是指什么?
靠左?
不含空格?
还是什么?

索引最左原则:
如果A B C建索引:
查找走索引:

A。

A B。

A B C。

其他不走索引:

比如: 

B C 。

B。

C。

1、普通索引:CREATE INDEX Student_ID ON Student(ID );

2、唯一索引:CREATE UNIQUE  INDEX Student_ID2 ON Student(ID );

3、组合索引:CREATE UNIQUE  INDEX Student_ID3 ON Student(NAME,AGE,PHONE );

组合索引:上面的组合采用最左原则相当于建立了:NAME,AGE,PHONE      NAME,AGE    NAME

select * from  Student where  NAME=‘小明 ’  and  age =‘12’  执行索引。

SELECT * FROM Student WHERE name like'admin%'  执行索引。

select * from  Student where   age =‘12’ and phone=‘123’  不执行索引。

SELECT * FROM Student WHEREt Name like'%admin'  不执行索引。

扩展资料:

1、简单说下什么是最左匹配原则

顾名思义:最左优先,以最左边的为起点任何连续的索引都能匹配上。同时遇到范围查询(>、<、between、like)就会停止匹配。

例如:b = 2 如果建立(a,b)顺序的索引,是匹配不到(a,b)索引的;但是如果查询条件是a = 1 and b = 2或者a=1(又或者是b = 2 and b = 1)就可以,因为优化器会自动调整a,b的顺序。

再比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,因为c字段是一个范围查询,它之后的字段会停止匹配。

2、最左匹配原则的原理

最左匹配原则都是针对联合索引来说的,所以我们有必要了解一下联合索引的原理。了解了联合索引,那么为什么会有最左匹配原则这种说法也就理解了。

我们都知道索引的底层是一颗B+树,那么联合索引当然还是一颗B+树,只不过联合索引的健值数量不是一个,而是多个。构建一颗B+树只能根据一个值来构建,因此数据库依据联合索引最左的字段来构建B+树。



参考技术A 输入的时候,你的内容从字段的第一个字符开始输入,可以就理解为顶格输入,你的输入内容前面没有任何东西,包括空格本回答被提问者采纳

雪花数据库存储层中的“云存储”是啥意思?

【中文标题】雪花数据库存储层中的“云存储”是啥意思?【英文标题】:What "cloud storage " means in snowflake database storage layer?雪花数据库存储层中的“云存储”是什么意思? 【发布时间】:2021-03-27 20:59:24 【问题描述】:

我只是对多个论坛上关于雪花数据库存储的解释感到困惑。当他们说数据在云存储中以列和优化文件的形式存储时,是指 S3 bucket 还是 azure blob 存储? Snowflake 是存储数据还是使用云主机存储?

【问题讨论】:

【参考方案1】:

根据论文The Snowflake Elastic Data Warehouse (2016) - 参见段落3.1 数据存储

Snowflake 最初选择 Amazon S3 来存储表数据、查询 结果和查询运算符生成的临时数据(例如海量 连接)一旦本地磁盘空间耗尽,以及大型查询 结果。元数据,例如目录对象,由哪个表组成 S3 文件、统计信息、锁、事务日志等存储在哪个 可扩展的事务键值存储,它是云的一部分 服务层。

从那时起,直到今天,Snowflake 也可以在 Azure 和 Google Cloud 上运行。

因此,在设置 Snowflake 帐户时,会向用户提供要使用的云存储提供商选项:AWS Snowflake 将使用简单存储服务 (S3),Azure 将使用 Azure Blob Storage,而对于Google Cloud 它将使用 Google Cloud Storage (GCS)。

【讨论】:

如果这个答案不清楚:如果您在 AWS 上设置了 Snowflake 实例,那么 Snowflake 将使用 S3 作为数据存储层,Azure -> Azure Blob,如果您重新使用 GCP,他们将使用 GCS。 @SimonDarr 我会在我的回答中说得更清楚。谢谢【参考方案2】:

数据库存储在 S3 中的文件、Azure 上的 Azure Blob 和 GCP 存储桶(或其他任何名称)中。数据和存储是完全分离的,这与基于服务器的 RDBMS(如 REDSHIFT)不同,在这种情况下,服务器既有计算又有存储。有关更多详细信息,请参阅 Snowflake 文档。

【讨论】:

以上是关于数据库中的“紧左原则”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

H2 数据库 - 错误消息中的 SELECTIVITY 是啥意思

数据中的均值为零是啥意思?

这些错误是啥意思? django中的mysql

对于 Visual Studio 2012 中的 SQL Server 数据库项目,“需要迁移”是啥意思

Oracle NUMBER 数据类型中的精度和小数位数是啥意思

java中的Dao类是啥意思?