四时宝库

程序员的知识宝库

深入浅出sql优化(三)之单表索引优化

大家好,我是闲水,每天更新java最新最热技术,对java感兴趣的朋友记得关注一下哦。

注意 :这是SQL性能优化第三章,点击关注查看前置内容。

上篇文章我们主要了解了索引优化的标尺"Explain"怎么用,这一张,我们就要将索引怎么建立,以及索引失效的例子了。废话不多说我们开始。

一 单表查询建立索引

系统中经常出现的sql语句如下: ( SQL_NO_CACHE 是不查找缓存,以免对我们的结果造成影响)

(二)SQL数据模式、表、索引的建立与删除

一、模式的定义与删除

1.定义模式

 CREATE SCHEMA <模式名> AUTHORIZATION <用户名>

如果没有指定<模式名>,那么<模式名>隐含为<用户名>

例如:定义一个学生—课程模式S-T

深挖MySQL——索引结构与优化(二)索引组织表

上一篇我们聊了B+树是什么,innodb为什么选择了B+树,接下来我们来看看innodb是如何使用B+树这个数据结构来组织数据的。

聚集索引

聚集索引,也有的书将它翻译为聚簇索引。innodb的数据按照主键(没有主键则为第一个设置的候选码,没有候选码则为隐藏字段rowid)的顺序存放在B+树中,所以innodb存储引擎表又叫索引组织表。在这颗B+树中,叶子节点存放行记录数据,这颗

如何收集ORACLE表统计信息与列统计信息、索引统计信息

概述

当我们在分析某些语句的性能时,会分析一些信息。像表、列、索引、直方图等等,所以今天主要讲表与列、索引的统计信息收集与分析。


关注点

表统计:

--行数,块数,行平均长度;

--all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN;

列统计:

--列中唯一值的数量(NDV),NULL值的数量,数据分布;

数据结构之跳表:链表+索引表,解决链表查找效率低的问题

我们知道,不借助额外空间的情况下,在链表中查找一个值,需要按照顺序一个个查找,时间复杂度为 O(N),其中 N 为链表长度。

当链表长度很大的时候, 这种时间是很难接受的。 一种常见的的优化方式是建立哈希表,将所有节点都放到哈希表中,以空间换时间的方式减少时间复杂度,这种做法时间复杂度为 O(1),但是空间复杂度为 O(N)。

为了防止链表中出现重复节点带来的问题,我们需要序列化节点,再建立哈希表,这种空间占用会更高,虽然只是系数级别的增加,但是这种开销也是不小的 。更重要的是,哈希表不能解决查找极值的问题,其仅适合根据 key 来获取内容。

mysql 表索引(mysql表索引数量)

查询方式

show create table users;

show index from users;

show keys from users;

均可以查询users表的索引信息,如下图

show index from users\G

show index from users

说明:

超详细的收集和查看ORACLE表统计信息与列统计信息、索引统计信息

概述

当我们在分析某些语句的性能时,会分析一些信息。像表、列、索引、直方图等等,所以今天主要讲表与列、索引的统计信息收集与分析。


关注点

表统计:

--行数,块数,行平均长度;

--all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN;

列统计:

--列中唯一值的数量(NDV),NULL值的数量,数据分布;

资料总结|Oracle基础维护——表、主键、索引、表结构维护手册

一、项目新建表、主键、索引注意事项

  1. 需要显示指定表和索引所属表空间
  2. 表是否分区根据业务实际需求确定,一般单表数据量超过千万以上,并有周期性删除历史数据需求的表需要考虑使用分区表。
  3. 主键默认就包含了一个唯一性索引,同样需要注意所属表空间问题。


二、建表、主建、索引的操作方法

建立工作表“目录索引”,一键找到表格

在工作中有很多工作,同时需要我们建立许多表格,但是这样没有一个明确的目录的话,我们要花费一定的时间在表格中翻找,这样就大大浪费了时间,想要做一个目录方便我们快速查找呢?

1,打开一个excel工作薄,先建立一些工作表来举例,如图:

2,在第一个工作表上点击右键,选择插入命令,然后重命名为【索引目录】。

3,点击选中【索引目录】工作表中的B1单元格,然后点击菜单【公式】中的定义名称。

PG日常运维--统计数据库,表,索引,表空间以及大小

概述

今天主要分享一下postgresql怎么去查看数据库,表,索引,表空间以及大小,适合平时PG运维的朋友。


1、查看数据库

postgres=# \l --查看所有数据库
postgres=# select pg_database_size('hwb'); --查看单个数据库的大小
postgres=# select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database; --查看所有数据库的大小
postgres=# select pg_size_pretty(pg_database_size('hwb')); --以KB,MB,GB的方式来查看数据库大小
<< < 1 2 3 4 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接