pgsql
Lei_Da_Gou
这个作者很懒,什么都没留下…
展开
-
21.pgsql中的执行计划explain
一、执行计划的解释1.EXPLAIN命令 ANALYZE选项通过实际执行的SQL来获得相应的执行计划。因为它真正被执行,所以可以看到执行计划每一步花掉了多少时间,以及它实际返回的行数目。注意1:加上analyze选项后,会真正执行实际的SQL,如果SQL语句是一个插入、删除、更新或create table as语句,这些语句会修改数据库。为了不影响实际的数据,可以把EXPL...原创 2020-03-04 21:19:03 · 2934 阅读 · 1 评论 -
20.什么是散列表
散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。一个通俗的例子是,为了查找电话簿中某人的号码,可以创建一个按照人名首字母顺序排列的表(即建立人名 到首字母 的一个函数关系),在首字母为W的...原创 2020-03-03 15:17:05 · 1082 阅读 · 0 评论 -
19.pgsql中的数据库物理存储文件-分页文件(2)
1.工具介绍1)pageinspect扩展工具用于查看数据底层存储信息。2.pageInspect相关函数介绍1)get_raw_page函数:将指定表文件中的页面内容返回。param1:表名,param2:main/fsm/vm, param3:第几页;2)page_header函数:返回本页面中的page header信息。param1:get_raw_page函数的返回值;...原创 2020-02-25 21:46:05 · 713 阅读 · 1 评论 -
18.pgsql开启pageinspect插件
下载pgsql后自带了该插件,因此只需在sql环境中执行如下命令即可(windows和linux都一样):原创 2020-02-25 17:41:41 · 600 阅读 · 1 评论 -
17.pgsql中的数据库物理存储结构-分页文件(1)
1.表和索引所使用的页面格式的概述项指的是存储在一个页面里的独立数据值。在一个表里,一个项是一个行;在一个索引里,一个项是一条索引记录。每个表和索引都以固定尺寸(通常是 8K ,但也可以在编译时选择其它尺寸)的页面数组存储。在表里,所有页面逻辑上都相同,所以一个特定的项(行)可以存储在任何页面里。在索引里,第一个页面通常保留为元页面,保存着控制信息,并且依索引访问方法的不同,在索引里可...原创 2020-02-25 13:27:56 · 552 阅读 · 0 评论 -
16.多字段索引、唯一索引、表达式上的索引、部分索引
索引是提高数据库性能的常用方法。索引可以令数据库服务器以比没有索引快得多的速度查找和检索特定的行。不过索引也在总体上增加了数据库系统的负荷,因此我们应该恰当地使用它们。1.多字段索引一个索引可以定义在表中多个字段上。比如下面这样的表(把/dev目录保存在一个数据库里):CREATE TABLE test2 ( major int, minor int, ...原创 2020-02-20 18:49:12 · 2053 阅读 · 0 评论 -
15.pgsql索引类型(btree、hash、GIST、GIN)
pgsql索引类型PostgreSQL 提供了好几种索引类型:B-tree, Hash, GiST, GIN 。每种索引类型都比较适合某些特定的查询类型,因为它们用了不同的算法。缺省时,CREATE INDEX命令将创建一个 B-tree 索引,它适合大多数情况。1.B-tree索引B-tree 适合处理那些能够按顺序存储的数据之上的等于和范围查询。特别是在一个建立了索引的字段涉及到...原创 2020-02-20 18:23:41 · 4109 阅读 · 0 评论 -
14.pgsql中的表空间、数据库、模式、表的关系
一,数据库1.在sql环境中创建数据库:-- 需要连接一个数据后才行执行CREATE DATABASE name;2.在命令行中创建数据库:createdb没变什么魔术,它和postgres连接并执行CREATE DATABASE命令。这里引出一个问题,因为你需要与数据库服务器连接才能执行CREATE DATABASE命令,那么还有一个问题是第一个数据库...原创 2020-02-19 21:31:17 · 2526 阅读 · 0 评论 -
13.pgsql中的用户、角色、权限
一、用户/角色1.查看原始数据角色查看命令:\du执行结果:默认只有一个超级用户,账号密码都为postgres。2.添加一个角色添加sql:-- 添加角色role1create role role1;执行效果:3.pgsql用户和角色官方文档:PostgreSQL 使用角色的概念管理数据库访问权限。根据角色自身的设置不同,一个角色可以看...原创 2020-02-19 18:55:21 · 3418 阅读 · 0 评论 -
12.pgsql存储过程中得事务理解与实验
1.测试表准备-- 1.准备插入数据得表create table t_tx( id serial primary key, name varchar(255) not null, age int not null)-- 2.记录异常得表create table t_log( id serial primary key, msg varchar(255))2.第一...原创 2020-02-18 19:33:47 · 1858 阅读 · 1 评论 -
11.pgsql批量插入测试数据测试
1.测试准备-- 1.创建测试表t_usercreate table if not exists t_user( id serial primary key, user_name varchar(255), pass_word varchar(255), create_time date, dr char(1))-- 2.注释comment on column t_use...原创 2020-02-18 17:16:02 · 1502 阅读 · 0 评论 -
10.pgsql函数和存储过程
1.说明pgsql并没有将函数和存储过程做区分,通俗一点说,就是pgsql的函数也就是存储过程,存储过程就是函数。psql官方网站统称为PL/pgSQL - SQL 过程语言。2.函数的语法CREATE [OR REPLACE] FUNCTION function_name (arguments) RETURNS return_datatype AS $variable_nam...原创 2020-02-17 23:01:13 · 7363 阅读 · 0 评论 -
9.性能提升技巧(1)-向数据库中添加记录
第一次填充数据库时可能需要做大量的表插入。下面是一些建议,可以尽可能高效地处理这些事情。1..关闭自动提交关闭自动提交,并且只在每次(数据拷贝)结束的时候做一次提交。在纯 SQL 里,这就意味着在开始的时候发出BEGIN并且在结束的时候执行COMMIT。有些客户端的库可能背着你干这些事情,这种情况下你必须确信只有在你确实要那些库干这些事情的时候它才做。如果你允许每个插入都独立地...原创 2020-02-14 20:08:34 · 347 阅读 · 0 评论 -
8.pgsql的事务处理机制(2)
1.MVCC模型图形说明传统模式:类似悲观锁,并发效率低下。MVCC处理模式:加版本,单个写操作会将数据复制一份新的版本,不会阻塞,并发效率高。pgsql事务隔离性就是通过上图的数据的多版本来保证。MVCC老版本数据处理:每张表都有 free space map,它记录文件存储的可用空间情况。FSM 不是很准确,因为它以8KB来计算,并且不是实时更新的,它是...原创 2020-02-14 16:21:55 · 616 阅读 · 0 评论 -
7.pgsql的事务处理机制(1)
1.先来看看事务的特性及对应pgsql的实现机制特性 特性解释 pg实现机制 原子性 一个事务包含多个操作,这些操作要么全部执行,要么全都不执行。实现事务的原子性,要支持回滚操作,在某个操作失败后,回滚到事务执行之前的状态。 回滚实际上是一个比较高层抽象的概念,大多数DB在实现事务时,是在事务操作的数据快照上进行的(比如,MVCC),并不修改实际的数据,如果有...原创 2020-02-13 20:17:32 · 802 阅读 · 0 评论 -
6.pgsql三种日志类型
1、说明pgsql共三类日志文件pgsql在版本10前后日志文件名有变化,如下:左边为10版本前的日志文件名,右边为10版本及以上版本文件名pg_xlog ---- pg_wal (WAL 日志,即重做日志) 强制开启pg_clog ---- pg_xact (事务提交日志,记录的是事务的元数据) 内容一般不具有可读性 强制开启pg_log ---- log pg_log(数据库运...原创 2020-02-13 18:24:55 · 2294 阅读 · 0 评论 -
5.pgsql类型转换
-- 1.在系统表中里只有一个指数操作符,它以 double precision 作为参数。-- 扫描器给下面查询表达式的两个参数赋予 integer 的初始类型:SELECT 2 ^ 3 AS "exp";-- 分析器对两个参数都做类型转换,查询等效于:SELECT CAST(2 AS double precision) ^ CAST(3 AS double precision) A...原创 2020-02-12 18:52:46 · 3265 阅读 · 0 评论 -
4.pgsql各数据类型测试
#############################1.数字类型测试###############################insert into t_num_test values(1,2,12,3.141592653);-- 四舍五入到3.15insert into t_num_test values(1,2,12,3.149592653);-- decimal类型不存在...原创 2020-02-12 18:17:27 · 1742 阅读 · 1 评论 -
3.pgsql数据类型学习
1.概述弄好pgsql的环境后,我大概玩了一下,并且数了下里面的数据类型,发现至少有一百多种,WTF?PostgreSQL 有着丰富的内置数据类型可用。用户还可以使用CREATE TYPE命令增加新的数据类型(摘抄官网)。PostgreSQL文档地址https://www.yiibai.com/manual/postgresql/index.html查看官方文档后发现很...原创 2020-02-11 17:35:14 · 1921 阅读 · 0 评论 -
2.pgAdmin可视化工具安装与使用
1.下载地址https://www.postgresql.org/download/windows/进入后点击Download the installer进行注册并安装(需要注册一个账号)。下载完成后,安装即可,最后的那个推荐插件安装可以取消。2.安装完成后简单使用点击pgAdmin4打开pgAdmin开始使用。如下图:...原创 2020-02-11 16:39:01 · 1403 阅读 · 0 评论 -
1.postgresql安装及简单使用
1.环境环境:ubuntu16pgsql版本:9.5.191.ubuntu16下载地址(使用迅雷下载,不然会下很久)https://blog.csdn.net/q7989682/article/details/824595782.vmware安装ubuntu教程https://blog.csdn.net/zqxdsy/article/details/797581943.安...原创 2020-02-10 16:55:09 · 763 阅读 · 0 评论 -
0.postgresql和mysql对比
PostgreSQL 与 MySQL 对比Pg 没有 MySQL 的各种坑MySQL 的各种 text 字段有不同的限制, 要手动区分 small text, middle text, large text... Pg 没有这个限制, text 能支持各种大小.按照 SQL 标准, 做 null 判断不能用 = null, 只能用 is nullthe result of any ...原创 2020-02-10 10:08:48 · 543 阅读 · 0 评论