文档章节

数据库 索引

 非想非非想
发布于 2017/08/28 09:55
字数 361
阅读 0
收藏 0

一般的索引都是B_树索引(INDEX),还有一种是位图索引(BITMAP INDEX)。

创建索引的原则: 当任何单个查询要检索的行少于或等于整个表行数的10%时,索引就非常有用。

Oracle数据库会自动为表的主键以及包含在唯一约束中的列自动创建B-树索引。

B_树  基础为二叉查找树结构,其查找的时间复杂度O(log2N) ,包括二叉查找树,平衡二叉查找树,红黑树,进阶则是B-树、B+树、B*树。

位图索引创建原则:用在包含大量数据且内容不常修改的表中(数据仓库)。而且只应该在包含少量不同值得列上创建。如果某列的不同值数量少于表中行数的1%,或者如果某列的值的重复次数多余100次,那么此列就是位图索引的候选列。例如有一个表,它包含一百万行,那么小于等于一万个不同值的列就是很不错的位图索引候选列。对表行的更新应该极少,且列需要频繁的用在查询的WHERE子句中。

mysql索引

SHOW INDEX FROM table_name;

CREATE INDEX indexName ON mytable(username(length));

ALTER mytable ADD INDEX [indexName] ON (username(length)) ;

ALTER TABLE mytable ADD INDEX name_city_age (name(10),city,age);
ALTER TABLE mytable ADD INDEX (c);

ALTER TABLE mytable DROP INDEX c;

DROP INDEX [indexName] ON mytable;

 

© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 43
码字总数 25733
作品 0
西安
SQL基础-DDL数据定义语言

SQL数据定义语言-DDL语句 DDL语句部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。 语句 释义 CREATE DATABASE 创建新数据库 ALTER DATA...

ZHAO_JH
08/10
0
0
Oracle创建索引要做到三个适当

在Oracle数据库中,创建索引虽然比较简单。但是要合理的创建索引则比较困难了。笔者认为,在创建索引时要做到三个适当,即在适当的表上、适当的列上创建适当数量的索引。虽然这可以通过一句话...

超人不会飞
2012/07/28
0
0
Where语句设置不当导致索引失效

虽然说索引在使用上可能有种种限制,但是还是在数据库设计中被充分利用。因为在大部分情况下索引还是被用来提高数据库性能的一个工具。 虽然说索引在使用上可能有种种限制,但是还是在数据库...

疯狂的艺术家
2011/04/01
0
1
数据库系统学习一

学习书《数据库系统教程》第三版 作者:施伯乐 1、什么是索引? a、在关系数据库中,索引是表或视图在数据库中的一种结构,他可以使对应的表的SQL语句执行更快。索引的作用相当于图书的目录,...

小湘西
2015/10/22
55
0
ES权威指南(中文版)学习_1

1、在ES中存储数据的行为叫做 索引(indexing),不过在索引之前我们应该明确的是数据应该存储在哪里。 2、在ES中,文档归属于一种类型(type),而这些类型存在于索引(index)中,类比传统...

MrYx3en
2015/09/21
121
0

没有更多内容

加载失败,请刷新页面

加载更多

Swift-系统默认UICollectionViewController的基本用法

不用xib创建时,需要重写 override init(collectionViewLayout layout: UICollectionViewLayout){} 在调用时需传 UICollectionViewLayout值,不然就会报错 let layout = UICollectionViewFlow......

west_zll
20分钟前
1
0
Spring Boot 最核心的 3 个注解详解

最近面试一些 Java 开发者,他们其中有些在公司实际用过 Spring Boot, 有些是自己兴趣爱好在业余自己学习过。然而,当我问他们 Spring Boot 最核心的 3 个注解是什么,令我失望的是鲜有人能答...

Java技术栈
21分钟前
4
0
Sqoop 增量导入导出及Job操作示例

增量导入 递增列的增量导入append # 第一次导入[root@node222 ~]# /usr/local/sqoop-1.4.7/bin/sqoop import --connect jdbc:mysql://192.168.0.200:3306/sakila?useSSL=false --table ac......

PeakFang-BOK
27分钟前
2
0
Thread中断的理解

★中断的理解:1)中断可以理解为线程的一个标识位属性;2)表示一个运行中的线程是否被其他线程进行了中断操作 中断好比其他线程向该线程打了个招呼,其他线程通过调用该线程的interrupt()...

karma123
35分钟前
2
0
App store 侵权投诉

App Store Content Dispute 侵权投诉 https://www.apple.com/legal/internet-services/itunes/appstorenotices/#?lang=zh...

壹峰
58分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部