search
HomeDatabaseMysql Tutorial关于Oracle索引的使用模式

索引的使用对于一些庞大的sql语句来说,大多数的调优场景中有种雪中送炭的感觉,如果几百万,几千万的数据筛查,全表扫描将会是一

索引的使用对于一些庞大的sql语句来说,大多数的调优场景中有种雪中送炭的感觉,如果几百万,几千万的数据筛查,全表扫描将会是一个极度消耗资源的过程,但是如果走了索引扫描,可能性能会提升成百上千倍。索引的访问模式有以下几种,其实有些时候对有些细节还是不太注意。对不同的使用场景可以有一定的针对性,,效率也许更高。

Oracle之索引(Index)实例讲解 - 基础 

Oracle | PL/SQL唯一索引(Unique Constraint)用法 

Oracle全文索引的性能优势实例

Oracle非关键文件恢复,redo、临时文件、索引文件、密码文件

Oracle索引表空间数据文件丢失及重建

Oracle 实现基于函数的索引

Oracle索引被抑制情况

Oracle 重建索引脚本 

可以创建如下的测试表来简单归纳一些。

SQL> create table a as select object_id,object_name,object_type from dba_objects;
 Table created.

SQL> desc a
  Name                                                  Null?    Type
  ----------------------------------------------------- -------- ------------------------------------
 OBJECT_ID                                                      NUMBER
  OBJECT_NAME                                              VARCHAR2(128)
  OBJECT_TYPE                                              VARCHAR2(19)

SQL> analyze table a compute statistics;
 Table analyzed.

SQL> create unique index ind_a on a(object_id);  --我们创建了唯一性索引
Index created.

SQL> set autot traceonly exp

查看执行计划,使用了index uniqe scan,这种方式是最快的索引访问模式。

我们只输出索引列的值,结果预想可以走索引扫描,但是结果走了全表扫描,来看看为什么。

我们只需要简单的修改一些列的属性,就可以排除null的干扰,走索引扫描,这个时候走的是快速索引全扫描。这种索引扫描因为不会涉及到排序,所以扫描要快一些。

如果要对索引列作排序,这个时候可以使用索引全扫描,通过下面的执行计划可以看到快速扫描和全扫描的差别。

如果涉及到索引列的区间值,可以使用区间扫描,比如我们常用的between条件就会走区间扫描。

对于跳跃索引扫描,可能会略微难懂一些。

可以举一个简单的例子来模拟一下。我们创建一个表a,然后让一些字段的数据分布倾斜。

SQL> drop index ind_a;

Index dropped.

SQL> create index ind_a on a(object_type,object_id,object_name);

Index created.

SQL> analyze table a compute statistics for all indexed columns;

Table analyzed.

SQL> select object_id from a where object_type='INDEX PARTITION' and rownum

OBJECT_ID

----------

5639

可以看到数据的分布情况如下。

这个时候使用object_id来做查询,就会走跳跃索引扫描。尽管索引列是(object_type,object_id,object_name),但是通过object_id能够筛查出很小比例的数据。

本文永久更新链接地址:

linux

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How to Grant Permissions to New MySQL UsersHow to Grant Permissions to New MySQL UsersMay 09, 2025 am 12:16 AM

TograntpermissionstonewMySQLusers,followthesesteps:1)AccessMySQLasauserwithsufficientprivileges,2)CreateanewuserwiththeCREATEUSERcommand,3)UsetheGRANTcommandtospecifypermissionslikeSELECT,INSERT,UPDATE,orALLPRIVILEGESonspecificdatabasesortables,and4)

How to Add Users in MySQL: A Step-by-Step GuideHow to Add Users in MySQL: A Step-by-Step GuideMay 09, 2025 am 12:14 AM

ToaddusersinMySQLeffectivelyandsecurely,followthesesteps:1)UsetheCREATEUSERstatementtoaddanewuser,specifyingthehostandastrongpassword.2)GrantnecessaryprivilegesusingtheGRANTstatement,adheringtotheprincipleofleastprivilege.3)Implementsecuritymeasuresl

MySQL: Adding a new user with complex permissionsMySQL: Adding a new user with complex permissionsMay 09, 2025 am 12:09 AM

ToaddanewuserwithcomplexpermissionsinMySQL,followthesesteps:1)CreatetheuserwithCREATEUSER'newuser'@'localhost'IDENTIFIEDBY'password';.2)Grantreadaccesstoalltablesin'mydatabase'withGRANTSELECTONmydatabase.TO'newuser'@'localhost';.3)Grantwriteaccessto'

MySQL: String Data Types and CollationsMySQL: String Data Types and CollationsMay 09, 2025 am 12:08 AM

The string data types in MySQL include CHAR, VARCHAR, BINARY, VARBINARY, BLOB, and TEXT. The collations determine the comparison and sorting of strings. 1.CHAR is suitable for fixed-length strings, VARCHAR is suitable for variable-length strings. 2.BINARY and VARBINARY are used for binary data, and BLOB and TEXT are used for large object data. 3. Sorting rules such as utf8mb4_unicode_ci ignores upper and lower case and is suitable for user names; utf8mb4_bin is case sensitive and is suitable for fields that require precise comparison.

MySQL: What length should I use for VARCHARs?MySQL: What length should I use for VARCHARs?May 09, 2025 am 12:06 AM

The best MySQLVARCHAR column length selection should be based on data analysis, consider future growth, evaluate performance impacts, and character set requirements. 1) Analyze the data to determine typical lengths; 2) Reserve future expansion space; 3) Pay attention to the impact of large lengths on performance; 4) Consider the impact of character sets on storage. Through these steps, the efficiency and scalability of the database can be optimized.

MySQL BLOB : are there any limits?MySQL BLOB : are there any limits?May 08, 2025 am 12:22 AM

MySQLBLOBshavelimits:TINYBLOB(255bytes),BLOB(65,535bytes),MEDIUMBLOB(16,777,215bytes),andLONGBLOB(4,294,967,295bytes).TouseBLOBseffectively:1)ConsiderperformanceimpactsandstorelargeBLOBsexternally;2)Managebackupsandreplicationcarefully;3)Usepathsinst

MySQL : What are the best tools to automate users creation?MySQL : What are the best tools to automate users creation?May 08, 2025 am 12:22 AM

The best tools and technologies for automating the creation of users in MySQL include: 1. MySQLWorkbench, suitable for small to medium-sized environments, easy to use but high resource consumption; 2. Ansible, suitable for multi-server environments, simple but steep learning curve; 3. Custom Python scripts, flexible but need to ensure script security; 4. Puppet and Chef, suitable for large-scale environments, complex but scalable. Scale, learning curve and integration needs should be considered when choosing.

MySQL: Can I search inside a blob?MySQL: Can I search inside a blob?May 08, 2025 am 12:20 AM

Yes,youcansearchinsideaBLOBinMySQLusingspecifictechniques.1)ConverttheBLOBtoaUTF-8stringwithCONVERTfunctionandsearchusingLIKE.2)ForcompressedBLOBs,useUNCOMPRESSbeforeconversion.3)Considerperformanceimpactsanddataencoding.4)Forcomplexdata,externalproc

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version