如何创建合适的索引

简介: 如何创建合适的索引

一、为什么数据库一定要有主键


前提:主键应该为一个对业务无意义、一个有序递增的int或number型字段


1、 可以利用主键字段在数据底层存储上能有序的存储,能有效防止底层存储在DML时底层数据的可能存在迁移情况(行迁移、行连接等),影响底层数据存储上空间和性能的严重损耗


2、利用主键能够快速定位和update、delete快速更新或删除


3、能够提高OGG的快速同步和数据一致性保障


二、什么样的字段一定要创建索引


1、表与表之间经常join的字段


2、经常在where条件中列


3、复合索引创建指引:当where条件中出现多个条件列的时候,应该按照重复值越低且符合大部分业务场景查询的列作为前导列,减少数据的回表,直接能从索引中返回要的数据


     比如:where idcard_no ='111111111'  and update_time=trunc(sysdate)  


            idcard_no为个人身份证,该字段几乎为唯一,重复值很低,可以作为复合索引的前导列


            update_time为更新时间,该字段会存储非常多的重复值,可以和idcard_no结合创建成复合索引


三、什么样的字段一定不能建立成索引


1、基数很低的列(比如性别,type等重复值很高的列)

2、更新频繁但检索不频繁的列

3、BLOB/TEXT等长内容列

4、很少用于检索的列


相关文章
|
6月前
|
存储 程序员 C语言
c++ 如何做出实现一组数据的实际索引
c++ 如何做出实现一组数据的实际索引
|
9月前
|
存储 自然语言处理 NoSQL
【Java项目】1000w数据量的表如何做到快速的关键字检索?
【Java项目】1000w数据量的表如何做到快速的关键字检索?
81 0
|
9月前
|
数据库 索引
简述创建索引的注意事项
创建索引是提高数据库查询性能的重要手段之一,合理地创建索引可以加快查询速度,提升数据库的整体性能。以下是创建索引时需要注意的几个重要事项:
216 0
|
10月前
|
存储 程序员 C语言
c++ 如何做出实现一组数据的实际索引
C++是一种计算机高级程序设计语言, 由​​C语言​​​扩展升级而产生 , 最早于1979年由​​本贾尼·斯特劳斯特卢普​​在AT&T贝尔工
|
存储 SQL 数据库
如何创建合适的索引
一、为什么数据库一定要有主键 前提:主键应该为一个对业务无意义、一个有序递增的int或number型字段 1、 可以利用主键字段在数据底层存储上能有序的存储,能有效防止底层存储在DML时底层数据的可能存在迁移情况(行迁移、行连接等),影响底层数据存储上空间和性能的严重损耗 2、利用主键能够快速定位和update、delete快速更新或删除 3、能够提高OGG的快速同步和数据一致性保障
|
SQL 存储 关系型数据库
索引的创建与设计原则(2)(适合创建索引情况 )
索引的创建与设计原则(2)(适合创建索引情况 )
索引的创建与设计原则(2)(适合创建索引情况 )
|
存储 自然语言处理 算法
【MySQL从入门到精通】【高级篇】(十九)索引的分类&创建索引的三种方式&删除索引的两种方式
MySQL中的索引包括普通索引、全文索引、单列索引、多列索引和空间索引等。
200 0
【MySQL从入门到精通】【高级篇】(十九)索引的分类&创建索引的三种方式&删除索引的两种方式
|
NoSQL 关系型数据库 MySQL
索引的管理操作 | 学习笔记
快速学习 索引的管理操作
86 0
索引的管理操作 | 学习笔记
|
存储 NoSQL 搜索推荐
索引的概述和类型 | 学习笔记
快速学习 索引的概述和类型
64 0
索引的概述和类型 | 学习笔记
|
JSON 分布式计算 Hadoop
创建索引库和索引_演示|学习笔记
快速学习创建索引库和索引_演示。
61 0