经常发现建立索引后,sql的执行计划不会发生变化,对表运行下述语句后,才能起作用(在plsql 命令窗口中运行)
execute dbms_stats.gather_table_stats(ownname => 'USER_NAME',tabname => 'TABLE_NAME' ,estimate_percent => null ,method_opt => 'for all indexed columns' ,cascade => true ,degree => 1);
索引不起作用的例子
select b.logon_id,
count(logon_id) as shop_count,
max(b.add_date) as last_view_date
from shop_logon_view_pd_info b
group by b.logon_id;
select /*+ index(idx_lvpi_lid_adate)*/
b.logon_id,
count(logon_id) as shop_count,
max(b.add_date) as last_view_date
from shop_logon_view_pd_info b
group by b.logon_id
-- 对于产品访问表shop_logon_view_pd_info做group by统计(记录数,最新日期),由于count这些方法会扫描所有数据行,因此虽然对表建立了logon_id和add_date的组合所以,在oracle CBO还是会自动选择走全表扫描,及时使用hint语法强制指定还是走全表扫描
表fsys_model_param一共有1229993条数据
查询:
select * from fsys_model_param where model_id = '1682'
消耗24.56秒
创建索引
create index idx_fsys_model_param_model_id on fsys_model_param(model_id);
drop index idx_fsys_model_param_model_id on fsys_model_param;
再次查询
select * from fsys_model_param where model_id = '1682'
消耗0.00秒,基本不消耗时间
查看建立的索引:
show index from fsys_model_info;
分享到:
相关推荐
代码复制粘贴 改下里面的参数 就可以用 而且参数 也有说明 简单易懂
NULL 博文链接:https://wy649898543.iteye.com/blog/1446493
Mysql中创建各种索引的语句整理 代码 添加PRIMARY KEY(主键索引) 添加UNIQUE(唯一索引) 添加INDEX(普通索引) 添加FULLTEXT(全文索引) 添加多列索引 ) mysql>ALTER TABLE `...
CREATE INDEX Syntax CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [index_type] ON ... HASH | RTREE} 代码如下: — 创建无索引的表格 create table testNoPK ( id int not null, name varchar(10) ); — 创建
创建索引.txt
mysql添加索引
创建索引 数据索引 课程目标 理解 —— 创建索引的语法; 掌握 —— 在已有表上创建索引的方法; 掌握 —— 在修改表时添加索引的方法; 掌握 —— 在创建表时创建索引的方法。 创建索引 使用CREATE INDEX语句创建...
本文将介绍mysql 如何创建索引,需要的朋友可以参考下
怎样使用mysql索引,优化sql语句
MySQL索引 聚集索引 如果你想了解MySQL索引查询优化,你首先应该对MySQL数据组织结构、B-Tree索引、聚集索引,次要索引有一定的了解,才能够更好地理解MySQL查询优化行为。这里主要探讨MySQL InnoDB的聚集索引。
MySQL各版本,对于add Index的处理方式...这是原生MySQL 5.5,以及innodb_plugin中提供的创建索引的方式。所谓Inplace,也就是索引创建在原表上直接进行,不会拷贝临时表。相对于Copy Table方式,这是一个进步。 Inpla
掌握 —— 通过NAVICAT工具在创建表时创建索引的方法; 掌握 —— 通过NAVICAT工具在现存表中创建索引的方法; 掌握 —— 通过NAVICAT工具删除索引的方法。 使用NAVICAT工具创建和管理索引 通过NAVICAT工具在创建表...
在MySql中,创建全文索引相对比较简单。例如:我们有一个文章表(article),其中有主键ID(id)、文章标题(title)、文章内容(content)三个字段。现在我们希望能够在title和content两个列上创建全文索
MySql示例6:创建索引.zip,MySql示例6:创建索引.zip,MySql示例6:创建索引.zip,MySql示例6:创建索引.zip
MySql创建索引的语法如下: CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON table_name (index_col_name,…) 其中对应的语法变量信息如下: [UNIQUE|FULLTEXT|SPATIAL]:中括号中的三个...
为什么不对没一列创建索引 减少开销 覆盖索引 效率高 减少开销:假如对col1、col2、col3创建组合索引,相当于创建了(col1)、(col1,col2)、(col1,col2,col3)3个索引 覆盖索引:假如查询SELECT col1, col2...
索引的创建与管理 Navicat Premium 12 mysql
MYSQL数据库创建索引目录的方法和代码.pdfMYSQL数据库创建索引目录的方法和代码.pdf