自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(235)
  • 资源 (1)
  • 问答 (8)
  • 收藏
  • 关注

原创 【简单解决】The valid characters are defined in RFC 7230 and RFC 3986

最为常用的数据类型有三种,字符型、数值型和日期型。VARCHAR2、CHAR2 可以定义字符型数据NUMBER 定义整数或小数的数值型数据DATE 定义日期型数据...

2021-06-26 21:08:37 231

原创 21.pgsql中的执行计划explain

一、执行计划的解释1.EXPLAIN命令 ANALYZE选项通过实际执行的SQL来获得相应的执行计划。因为它真正被执行,所以可以看到执行计划每一步花掉了多少时间,以及它实际返回的行数目。注意1:加上analyze选项后,会真正执行实际的SQL,如果SQL语句是一个插入、删除、更新或create table as语句,这些语句会修改数据库。为了不影响实际的数据,可以把EXPL...

2020-03-04 21:19:03 2814 1

原创 20.什么是散列表

散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。一个通俗的例子是,为了查找电话簿中某人的号码,可以创建一个按照人名首字母顺序排列的表(即建立人名 到首字母 的一个函数关系),在首字母为W的...

2020-03-03 15:17:05 1006

原创 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 616 1

原创 18.pgsql开启pageinspect插件

下载pgsql后自带了该插件,因此只需在sql环境中执行如下命令即可(windows和linux都一样):

2020-02-25 17:41:41 513 1

原创 17.pgsql中的数据库物理存储结构-分页文件(1)

1.表和索引所使用的页面格式的概述项指的是存储在一个页面里的独立数据值。在一个表里,一个项是一个行;在一个索引里,一个项是一条索引记录。每个表和索引都以固定尺寸(通常是 8K ,但也可以在编译时选择其它尺寸)的页面数组存储。在表里,所有页面逻辑上都相同,所以一个特定的项(行)可以存储在任何页面里。在索引里,第一个页面通常保留为元页面,保存着控制信息,并且依索引访问方法的不同,在索引里可...

2020-02-25 13:27:56 498

原创 16.多字段索引、唯一索引、表达式上的索引、部分索引

索引是提高数据库性能的常用方法。索引可以令数据库服务器以比没有索引快得多的速度查找和检索特定的行。不过索引也在总体上增加了数据库系统的负荷,因此我们应该恰当地使用它们。1.多字段索引一个索引可以定义在表中多个字段上。比如下面这样的表(把/dev目录保存在一个数据库里):CREATE TABLE test2 ( major int, minor int, ...

2020-02-20 18:49:12 1984

原创 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 3904

原创 14.pgsql中的表空间、数据库、模式、表的关系

一,数据库1.在sql环境中创建数据库:-- 需要连接一个数据后才行执行CREATE DATABASE name;2.在命令行中创建数据库:createdb没变什么魔术,它和postgres连接并执行CREATE DATABASE命令。这里引出一个问题,因为你需要与数据库服务器连接才能执行CREATE DATABASE命令,那么还有一个问题是第一个数据库...

2020-02-19 21:31:17 2405

原创 13.pgsql中的用户、角色、权限

一、用户/角色1.查看原始数据角色查看命令:\du执行结果:默认只有一个超级用户,账号密码都为postgres。2.添加一个角色添加sql:-- 添加角色role1create role role1;执行效果:3.pgsql用户和角色官方文档:PostgreSQL 使用角色的概念管理数据库访问权限。根据角色自身的设置不同,一个角色可以看...

2020-02-19 18:55:21 3298

原创 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 1798 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 1454

原创 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 7143

原创 9.性能提升技巧(1)-向数据库中添加记录

第一次填充数据库时可能需要做大量的表插入。下面是一些建议,可以尽可能高效地处理这些事情。1..关闭自动提交关闭自动提交,并且只在每次(数据拷贝)结束的时候做一次提交。在纯 SQL 里,这就意味着在开始的时候发出BEGIN并且在结束的时候执行COMMIT。有些客户端的库可能背着你干这些事情,这种情况下你必须确信只有在你确实要那些库干这些事情的时候它才做。如果你允许每个插入都独立地...

2020-02-14 20:08:34 331

原创 8.pgsql的事务处理机制(2)

1.MVCC模型图形说明传统模式:类似悲观锁,并发效率低下。MVCC处理模式:加版本,单个写操作会将数据复制一份新的版本,不会阻塞,并发效率高。pgsql事务隔离性就是通过上图的数据的多版本来保证。MVCC老版本数据处理:每张表都有 free space map,它记录文件存储的可用空间情况。FSM 不是很准确,因为它以8KB来计算,并且不是实时更新的,它是...

2020-02-14 16:21:55 596

原创 7.pgsql的事务处理机制(1)

1.先来看看事务的特性及对应pgsql的实现机制特性 特性解释 pg实现机制 原子性 一个事务包含多个操作,这些操作要么全部执行,要么全都不执行。实现事务的原子性,要支持回滚操作,在某个操作失败后,回滚到事务执行之前的状态。 回滚实际上是一个比较高层抽象的概念,大多数DB在实现事务时,是在事务操作的数据快照上进行的(比如,MVCC),并不修改实际的数据,如果有...

2020-02-13 20:17:32 743

原创 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 2157

原创 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 3143

原创 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 1632 1

原创 3.pgsql数据类型学习

1.概述弄好pgsql的环境后,我大概玩了一下,并且数了下里面的数据类型,发现至少有一百多种,WTF?PostgreSQL 有着丰富的内置数据类型可用。用户还可以使用CREATE TYPE命令增加新的数据类型(摘抄官网)。PostgreSQL文档地址https://www.yiibai.com/manual/postgresql/index.html查看官方文档后发现很...

2020-02-11 17:35:14 1857

原创 2.pgAdmin可视化工具安装与使用

1.下载地址https://www.postgresql.org/download/windows/进入后点击Download the installer进行注册并安装(需要注册一个账号)。下载完成后,安装即可,最后的那个推荐插件安装可以取消。2.安装完成后简单使用点击pgAdmin4打开pgAdmin开始使用。如下图:...

2020-02-11 16:39:01 1331

原创 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 675

原创 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 514

原创 共享sql减少硬解析

1.sql共享后会减少硬解析2.共享sql就是让sql完全相同 大小写、空格等全部相同,否则都会发生硬解析。 使用绑定变量,使sql达到完全相同。测试:declare v_sql varchar2(50);begin for i in 1..1000 loop v_sql := 'INSERT /*leilijun*/ into test v...

2019-12-14 18:37:46 160

原创 chain、chunk、4031错误

1.shared pool整体的大小我们可以设置 但是其中的free cache、lib cache、row cache我们分配不了。 其中容易出问题的是free cache和lib cache。2.ora-4031错误(大量硬解析存在的时候会存在ora-4031错误) 硬解析需要保存的sql和执行计划,free的chain中找不到对应的chunck。3.ch...

2019-12-14 17:52:52 224

原创 shared pool组成即软硬解析

shared pool的百分之七八十都是oracle的补丁没有打。shared pool作用:缓存sql语句、sql语句的执行计划。SQL语句执行:1.解析(parse) 2.执行(exec) 3.获取数据(fetch)shared pool 在解析步骤起作用,减少解析时的开销。shared pool主要分为:free(自由)、library(sql)、row(数据字典...

2019-12-14 17:18:00 143

原创 oracle语句执行过程

shared pool:是缓存sql语句以及sql语句对应的执行计划server process(前端进程):找shared pool中是否已经缓存了sql语句和执行计划,如果没有,则解析执行计划并放入shared pool中,如果有,则执行使用shared pool中缓存的执行计划,减少了解析sql语句所花费的CUP和IO。bufffer cache:就是缓存的dbf的数据...

2019-12-14 16:42:18 526

原创 oracle体系概述

1.oracle有三类文件ctl、log、dbf2.oracle实例是启动起来画的一块内存和oracle启动后的一堆进程的统称一个实例一般对应一个oracle数据库,也可以2、4、8个实例对应一个数据库,达到负载均衡的效果,但是8个的用的很少。多个实例对应一个数据库就是oracle的rac技术数据库实例:内存(SGA)+进程SGA:share pool+buffer c...

2019-12-14 15:23:29 157

原创 3.计算机的缓存

1.cpu包含缓存寄存器、一级缓存、二级缓存2.内存3.磁盘磁盘本身也有一块缓存区4.缓存命中逻辑IO:cpu直接从内存获取数据物理IO:cpu从磁盘获取数据缓存命中率=逻辑IO/(逻辑IO+物理IO)5.磁盘中的内存工作机制磁盘中有一个电池单独对磁盘中的内存进行供电,一旦断电,则电池会帮助磁盘中的内存数据不会被丢失,但是需要尽快恢复供电。如果超过电池能帮助...

2019-12-12 23:38:40 154

原创 2.磁盘数据读取机制

1.读取顺序硬盘-内存-cpu计算2.top看系统进程3.iostat 1 20看进20次cpu从磁盘读取数据的详细4.free看系统内存使用情况5.磁盘保存数据机制原因:磁臂有磁性,移动中会产生电荷,形成电荷高低,及计算机底层保存数据格式1、0,数据是存放在磁盘上的磁道,磁盘被划分为扇区,一个扇区为512kb1个磁柱=4个磁条6.磁盘读取数据机制...

2019-12-12 23:02:38 310

原创 1-计算机的运行机制

1.计算机组成硬盘-内存-cpu2.一个的运行过程硬盘-内存-cpu-内存3.cpu执行的时候其实是分为多个时间片执行一个时间片只能执行一个程序4.cpu消耗主要分为从内存拿数据计算、调度5.计算机运行的瓶颈在哪里IO流...

2019-12-12 21:33:39 1048 1

原创 oracle索引、序列、同义词

-- *******************索引、序列、同意词*******************-- 创建、维护和使用序列(提供有规律的数值)-- 1.创建序列CREATE SEQUENCE dept_deptid_seq-- 每次增长的数值[INCREMENT BY n] INCREMENT BY 10-- 从哪个值开始[START WITH n] START WITH 1...

2019-10-28 03:24:50 117

原创 oracle视图,rownum、topn问题

-- **********************视图******************************-- 1.描述视图?(可以将视图理解为存储起来的 SELECT 语句)-- 2.为什么使用视图?(控制数据访问简化查询避免重复访问相同的数据)-- 3.创建和修改视图的定义,删除视图CREATE OR REPLACE VIEW empvu10 (employee_...

2019-10-28 01:12:31 421

原创 oracle约束的使用

-- *****************约束(约束是表级的强制规定)******************-- 1.NOT NULL(约束只能定义在列上)-- 2.unique-- 3.PRIMARY KEYCREATE TABLE test_not_null( employee_id NUMBER(6), first_name VARCHAR2(...

2019-10-27 23:54:51 187

原创 创建和管理表

-- ***************查询数据字典***********-- 1.查看所有创建的表SELECT table_name FROM user_tables;--2.查看所有创建的对象SELECT DISTINCT object_type FROM user_objects;-- 3.查看用户自定义的表、视图、同义词、序列SELECT * FROM user_catalog...

2019-10-24 22:08:30 167

原创 oracle子查询

-- ****************子查询********************-- 1.单行子查询(=、>、>= 、<、<= 、<>)(将子查询放在比较条件的右侧?)-- 谁的工资比abel高SELECT * FROM employeesWHERE salary > (SELECT salary FROM employees WHERE e...

2019-10-24 21:18:40 159

原创 oracle分组函数

-- ********************分组函数,组函数忽略空值**************************--可以对数值型数据使用AVG 和 SUM 函数-- avgSELECT AVG(salary) FROM employees-- SUMSELECT SUM(salary) FROM employees-- count,除了count(*),其它都会忽略空值...

2019-10-23 01:50:45 235

原创 oracle多表查询

-- 一、内连接(-- 等值连接和非等值连接,其实就是两层嵌套循环得得出来的结果。因此连接字段记得加索引。)-- 1.等值连接测试SELECT e.employee_id, d.department_id,d.department_nameFROM employees e INNER JOIN departments d ON d.depar...

2019-10-23 00:41:34 139

原创 oracle导入外部sql文件

@D:\hr_cre.sql;使用command window窗口。sql window窗口会执行失败。

2019-10-20 19:12:51 415

原创 oracle-单行函数-通用函数

-- ******************单行函数-通用函数***********SELECT col1,nvl(col2,'1111') FROM t_nvl;insert into t_nvl(col2,col3) values(' ', ''); -- 插入空格insert into t_nvl(col2,col3) values('', 5); -- 插入空字符串insert...

2019-10-15 22:52:29 173

mysql中文手册(个人非常喜欢)

学习mysql的中文手册必不可少,mysql的中文手册.chm文件,方便查询优化mysql。

2019-05-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除