oracle单列索引和组合索引性能测试
共有两张表t1,t2
t1的表结构
t2的表结构
t1和t2通过
insert into t1 values ('www','aaa','bbb');
insert into t1 values ('www1','aaa1','bbb1');
insert into t1 values ('www2','aaa2','bbb2');
insert into t1 values ('www3','aaa3','bbb3');
t2同理构建
insert into t1 select * from t1;
insert into t2 select * from t2;
构建数据共:
t1共262144行
t2共524288行
为保证查询测试准确(不受缓存结果的影响)
在执行下一次查询前都会执行以下语句
ALTER SYSTEM FLUSH SHARED_POOL (清空语句,执行计划缓存)
ALTER SYSTEM FLUSH BUFFER_CACHE (清空数据缓存)
select t1.a1,t2.a1 from t1,t2 where t1.a3=t2.a3 and t2.a1='www';
select t1.a1,t2.a1 from t1 join t2 using(a3) where t2.a1='www';
我们先用
select t1.a1,t2.a1 from t1,t2 where t1.a3=t2.a3 and t2.a1='www';
测试
explain plan for select t1.a1,t2.a1 from t1,t2 where t1.a3=t2.a3 and t2.a1='www';
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
1、不建任何索引
t1,t2都是全表扫描
2、在t2.a1建索
看查询结果
t1全表扫描,t2范围索引扫描
3、在t2.a1和t1.a3建非唯一索引
4、在t2.a1,t2.a3和t1.a3建非唯一索引
5,在t1.a1,t1.a3建立组合索引,在t2.a3建非唯一索引
select t1.a1,t2.a1 from t1,t2 where t1.a3=t2.a3 and t2.a1='www';
6、在t1,t2的a1和t3列建立组合索引
根据索引的类型与where限制条件的不同,有4种类型的索引扫描:
索引唯一扫描(index unique scan)
索引范围扫描(index range scan)
索引全扫描(index full scan)
索引快速扫描(index fast full scan)
后续逐步完善测试结果!
转载于:https://blog.51cto.com/9756063/1604099
oracle单列索引和组合索引性能测试相关推荐
- oracle 主键_mysql 组合索引带主键ID的问题
场景: mysql 5.7 某表 t_apply_info 上的2个索引,一个组合索引带了 主键字段 ID,另一个是同字段的单列索引 例如: KEY idx_1 (apply_serial_no,id ...
- mysql 组合索引 or_mysql索引优化实例(单列索引与组合索引)
索引一般用于在数据规模大时对查询进行优化的一种机制,对于一般的查询来说,mysql会去遍历整个表,来查询符合要求的结果: 如果借助于mysql索引,mysql会将要索引的字段按照一定的算法进行处理,并 ...
- MySQL单列索引和组合索引的创建及区别介绍
MySQL单列索引是我们使用MySQL数据库中经常会见到的,MySQL单列索引和组合索引的区别可能有很多人还不是十分的了解,下面就为您分析两者的主要区别,供您参考学习. 为了形象地对比两者,再建一个表 ...
- mysql 组合索引 or_Mysql_组合索引和单列索引
一.目标 什么时候使用组合索引,什么时候使用单独索引 组合索引.单独索引区别 组合索引:最左前缀匹配原则 二.前期数据准备 1. 建表 CREATE TABLE `user` ( `uid`int(1 ...
- mysql 组合主键索引_mysql 组合索引带主键ID的问题
场景: mysql 5.7 某表 t_apply_info 上的2个索引,一个组合索引带了 主键字段 ID,另一个是同字段的单列索引 例如: KEY idx_1 (apply_serial_no,id ...
- 索引利弊,如何创建索引,单键索引还是组合索引
** 索引的利弊与如何判定,是否需要索引** 相信读者都知道索引能够极大地提高数据检索的效率,让Query 执行得更快,但是可能并不是每一位朋友都清楚索引在极大提高检索效率的同时,也给数据库带来了一些 ...
- mysql多列索引(组合索引)特点和使用场景
mysql多列索引特点和使用场景 单列索引 查看sql的执行计划 索引合并 多列索引 再看sql的执行计划 多列索引的顺序 最左前缀 添加数据的脚本 首先创建一张表,有姓'first_name'.名' ...
- MySQL的索引(普通索引、唯一索引,主键索引、组合索引、全文索引、空间索引)相关操作
目录 索引介绍 Hash索引和B+tree索引的区别 应用场景 索引分类 普通索引 创建单列索引--普通索引(3种语法) 查看数据库中的索引 查看数据表中的索引 删除索引 唯一索引 主键索引 组合索引 ...
- 【mysql】普通索引和组合索引(复合索引、联合索引) 最左原则
文章目录 概述 普通索引 唯一索引 主键索引 组合索引 最左前缀 为什么要使用联合索引 概述 索引分单列索引和组合索引: 单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引: ...
- mysql创建表对经常要查询的列添加索引或者组合索引
创建表的时候对经常要查询的列添加索引或者组合索引 索引直接影响后面的查询性能,尤其是数据量越大的时候,影响越明显.作为一个从事DBA生涯超过5年的DBA,遇到过无数次由于没有添加索引,导致的线上故障, ...
最新文章
- The Report(连接查询)
- 图像处理之opencv图像特效大全
- tomcat端口冲突解决 Address already in use: JVM_Bind :8080
- Mysql远程登录及常用命令
- 删了自己写的代码?判刑10个月!
- html5 canvas 头像上传
- ie运行不了java脚本界面_IE浏览器不能运行js JS代码失效不能运行了如何解决
- 解决金蝶未检测到K/3许可文件,并且该账套已超过演示版期限问题
- 破解 Ashley Madison 1100万个口令
- 智能指针auto_ptr管理单例
- GDAL源码剖析(四)之命令行程序说明二
- 理解AOP思想(面向切面编程)
- 前端最佳实践(一)——DOM操作
- java 子类型_Java – 基类和子类中的equals方法
- xp php环境搭建 iis,Windows XP环境下快速配置IIS+PHP详细过程
- SpringCloud Nacos 【服务端】服务注册源码解析
- html5 堆栈不足,超简单!不用PS也能玩堆栈摄影
- 笔记本的结构深入分析
- linux 命令 curl 详解
- 使用透明数据加密(TDE)来保护数据库