第四章:索引的使用 索引分类 如何有效建立索引 1.看sql执行计划,有没有全表扫描或者效率低的语句 2.看语句,找到相关表及其关联字段 3.选择可选性最高的字段建立索引:可选性就是字段不同记录值最多 如何避免索引被抑制 规范1:不要轻易在字段前面添加函数 规范2:尽量不要将字段添加到函数表达式中 复合索引--双刃剑 P62 前缀性:优先按某一字段排序的表会走包含那一个字段的复合索引 可选性
转载 2024-05-12 15:04:10
144阅读
pgsql 全文索引 先给个实际的效果,在hotel数据库,进入poi_detail数据表,执行指令 select name from poi_detail where to_tsvector('senaean_word'::regconfig,lower(name)) @@ plainto_tsquery('senaean_word'::r
转载 2024-02-28 11:29:43
277阅读
1. 索引的特性1.1 加快条件的检索的特性当表数据量越来越大时查询速度会下降,在表的条件字段上使用索引,快速定位到可能满足条件的记录,不需要遍历所有记录。create table t(id int, info text); insert into t select generate_series(1,10000),'lottu'||generate_series(1,10000); create
联合索引 命名规则:表名_字段名1、需要索引的字段,要在where条件中2、数据量少的字段不需要索引3、如果where条件中是OR关系,索引不起作用4、符合最左原则联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b|&nbs
提到在线索引都是商业数据库的功能,例如SQL SERVER 在线索引就是你花钱买的版本也必须是企业版,
原创 2022-06-22 10:14:41
167阅读
提到在线索引都是商业数据库的功能,例如SQL SERVER 在线索引就是你花钱买的版本也必须是企业版, 标准版都不能在线索引POSTGRESQL 支持在线索引的功能,在本文撰写期间MYSQL 是不支持 online add index  对于几千万的大表建立索引还是要使用工具,并且8.0 使用gh ost 是有我问题,所以对于大表索引并且是8.0的情况还得是 pt-osc.下
原创 2023-06-20 04:07:10
170阅读
1、创建测试表 CREATE TABLE big_data( id character varying(50) NOT NULL, name character varying(50), datetime timestamp with time zone, CONSTRAINT big_data_p
转载 2019-10-11 08:33:00
635阅读
2评论
postgresql索引postgresql提供的索引类型有:B-tree、hash、gist和gin。大多情况下,B-tree索引比较常用,用户可以使用create index命令创建一个B-tree索引。1、B-tree索引:   B-tree适合处理那些能够按顺序存储的数据,比如对于一些字段涉及使用:< ,<= ,= ,>= 或 >操作符之一进行
原创 2018-08-01 10:13:47
10000+阅读
Postgresql索引B-tree、 Hash、 GiST、https://www.cnblogs.com/alianbog/p/5628543.html (可全模糊查询) SP-GiST 、 GIN BRIN如果只有前模糊查询需求(字符串 like ‘xx%’),使用collate "C"的b-tree索引;当collate不为"C"时, 可以使用类型对应的pattern ops(例如text
转载 2021-03-18 17:35:31
1715阅读
2评论
PostgreSQL中有几种索引类型,如B-tree,Hash,GiST,SP-GiST和GIN等。每种索引类型根据不同的查询使用不同的算法。 默认情况下,CREATE INDEX命令使用B树索引。在项目中经常使用单列索引,对应查询where语句搜索字段语法create index index_name on table_name(column_name);多列索引,后面加多个即可cr...
原创 2021-07-28 10:27:12
1741阅读
在一个繁忙的业务系统中,创建索引的时候,会提示ORA-00054告警。加上online语句即可。关于online语句,官方有以下解释:参考文档:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/CREATE-INDEX.html#GUID-1F89BBC0-825F-4215-AF71-7588E31D8BF
转载 2024-05-31 09:10:40
164阅读
文章目录怎么给字符串字段索引?一、归纳1.1 字符串字段创建索引方式?1.2 各种方式可能的缺点?二、原文前缀索引对覆盖索引的影响其他方式小结上期问题时间 怎么给字符串字段索引?MySql实战笔记是针对极客时间:《MySql实战45讲–从原理到实战,丁奇带你搞懂MySql》系列课程的学习和自我总结而成的读书笔记;一、归纳1.1 字符串字段创建索引方式?直接创建索引创建前缀索引倒序存储,再创建
转载 2024-03-25 18:22:19
37阅读
题记:在数据泵导入时默认情况下创建索引是不使用并行的,所以这一步会消耗较长的时间,除了人工写脚本并行创建索引外,数据泵在导入时也可以并行创建索引,本文详细介绍了整个测试过程并得出测试结论。测试环境为11204单实例:首先创建测试表和测试索引:然后并行导出,在导入时指定parallel等于4并设置sqlfile参数,查看生成的sql文本:发现sql文本中并未使用并行:接下来为了更直接的看出整个过程先
B+树索引使用OLTP和OLAP需要使用索引的情况联合索引1)联合索引树结构2)联合索引使用分析可以完整用到联合索引的情况只能使用部分联合索引的情况可以使用覆盖索引的情况不能使用联合索引的情况普通索引与唯一索引1)insert buffer和change buffer2)普通索引与唯一索引的区别3)普通索引和唯一索引的选择 OLTP和OLAP数据库存在两种类型的应用,OLTP和OLAP应用。联机
转载 2024-06-05 21:35:44
45阅读
--查询索引 select * from pg_indexes where tablename='tab1'; --创建索引(查询用到哪几列,就对哪几个字段创建索引) CREATE INDEX index_moni_gk_city_day ON moni_gk_city_day USING btre
转载 2020-11-18 18:40:00
2276阅读
2评论
PostgreSQL 的数据库王国里,索引就像是一本超级厉害的秘籍,能让查询数据的速度像坐上火箭一样快。
原创 精选 7月前
341阅读
1.概述在Linux系统,为了隐藏具体文件系统的实现细节,提供了一个虚拟文件系统,VFS支持的文件系统可以划分为以下三个类型:(1)基于磁盘的文件系统Ext2, Ms-Dos(2)网络文件系统,可以通过网络访问其它文件系统上的内容,如NFS,SMB。(3)特殊的文件系统如/proc,存在内存的文件系统,可以通过通用文件系统接口访问相关信息,这类文件系统不占用磁盘空间。2. VFS的管理对象Linu
一.索引优化 索引优化主要还是依赖explain命令,关于explain命令相信大家并不陌生,具体用法和字段含义可以参考官网explain-output,这里需要强调rows是核心指标,绝大部分rows小的语句执行一般很快。所以优化语句基本上都是在优化rows。一般来说:rows<1000,是在可接受的范围内的。rows在1000~1w之间,在密集访问时可能导致性能问题,但如果不是太频繁的访
现在有一个支持邮箱登录的系统,定义:mysql> create table SUser( ID bigint unsigned primary key, email varchar(64), ... )engine=innodb;业务会出现这样的语句:mysql> select f1, f2 from SUser where email='xxx';我们不想要全表扫描,所以会在em
转载 2024-02-20 11:35:49
101阅读
最近阅读了一些阿里发出的索引规约手册,记录下 一、建表规约1,表达是与否概念,使用is_xxx方式命名,数据类型为unsignde tinyint 2, 表名,字段名使用小写字母 3,不要用保留字 4,唯一索引使用uk_字段名;普通索引使用idx_字段名 5,小数类型使用decimal,不要用float和double 6,存储字符串长度相同,使用char 7,varchar是
转载 2024-04-02 13:20:53
46阅读
  • 1
  • 2
  • 3
  • 4
  • 5