自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

在路上

前行路上的精彩,只有在路上才能体会。

  • 博客(1040)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 19.5. Write Ahead Log

19.5预写日志(WAL)有关更多对这些参数进行调优的信息,请参见第29.4节。19.5.1 WAL设置wal_level(enum) 决定写入WAL的信息的详细程度。默认为replica。可用值有minimal、replica、logical,如果需要设置归档(archvie_mode)或进行流复制,则至少为replica。在9.6之前的版本中,还可以设置archive和hot_standby,现在也可以设置,不过是映射到了replica级别。fsync(boolean)...

2021-02-23 10:22:42 316

原创 19.4. Resource Consumption

19.4资源使用19.4.1内存shared_buffers(integer) 设置数据服务使用的共享内存缓存大小。默认一般是128MB。默认单位为blocks,即BLCKSZbytes,一般是8KB。一般设置为内存的25%。调大shared_buffers一般也需要相应的调整max_wal_size。huge_pages(enmu) 控制主共享内存区域是否使用大页。可用值为try(默认)、on和off。仅支持Linux和Windows。temp_buffers(i...

2021-02-20 14:46:02 328

原创 19.3. Connections and Authentication

19.3连接和认证19.3.1连接设置listen_addresses(string) 指定监听地址。可以是以逗号分隔的主机名或IP地址。*为所有。0.0.0.0指定允许所有IPv4地址; ::指定允许所有IPv6地址。仅当启动服务时可设置;port(integer) 端口号,默认5432。仅当启动服务时可设置;max_connections(integer) 连接到数据库服务的最大并发连接数。默认为100。仅当启动服务时可设置;备库的该值需要至少大于主库的...

2021-02-20 10:45:24 330

原创 19.2. File Locations

19.2文件路径连同之前提到的postgresql.conf在内,PostgreSQL还使用用于客户端认证(使用方法参见第20章)的其他另外两个配置文件。默认,所有三个配置文件均存储在数据库群集的数据目录下。本节介绍的参数可以自定义这些配置文件的存放路径data_directory(string) 指定数据存储路径。仅当启动服务时可设置;config_file(string) 指定服务的主要配置文件(默认postgresql.conf)。仅可在postgres命令行设置;...

2021-02-20 09:44:41 140

原创 第十九章 数据库服务端配置

有许多配置参数可影响数据库系统。本章的第一部分介绍如何与配置参数交互。接下来的章节探讨每个参数都是做什么的。19.1设置参数19.1.1参数名及其值所有参数名均大小写不敏感。每个参数值均为以下五种类型之一:Boolean(布尔),string(字符串),integer(整数),floatingpoint(浮点数)或enumerated(enum,枚举)。值的类型决定了设置参数的语法: Boolean:值可为on,off,true,false,yes,no,1,0等; str...

2021-02-20 09:44:05 229

原创 第十八章 数据库服务端设置及操作

本章介绍如何设置和运行数据库服务,及其与操作系统的交互。18.1 PostgreSQL用户账号建议使用单独的操作系统账号运行PostgreSQL。最好该账号非PostgreSQL可执行文件的所有者。使用useradd或adduser在unix系统添加用户。默认使用postgres。18.2创建数据库群集首先,需要在磁盘上初始化数据库存储区域。此即为数据库群集(databasecluster)。数据库群集为由运行的数据库服务单个实例管理的多个数据库的集合。初始化之后,数据库群集会...

2021-02-19 14:40:35 984

原创 第十七章 在Windows用源码安装数据库

建议从官网下载二进制文件、使用图形界面安装,源码安装的话,一般只用于开发PostgreSQL或扩展。Windows上构建PostgreSQL有多种方式,最简单的方式是安装Visual Studio 2019并使用其编译器。也可以使用Visua C++2013至2019。一般同时需要安装Windows SDK。也可以使用由MinGW提供的GUN编译器或在旧版本Windows上使用Cygwin。使用MinGW或Cygwin使用普通的构建系统,请参见第16章,及第16.7.4节和16...

2021-02-18 11:02:12 155

翻译 16.7. Platform-Specific Notes

16.7.特定平台的相关说明本节对特定平台下PostgreSQL的安装及配置问题进行了额外说明。请仔细阅读第16.2章节。同时,参阅第32章查看回归测试结果。未在此处列出的平台,暂无已知的平台相关的安装问题。16.7.1.AIXPostgreSQL支持AIX,但不建议安装在AIX6.1及之前的版本上。可使用GCC或本地IBM编译器xlc。16.7.1.1.内存管理AIX在内存管理方面,有点特殊。在运行程序的时候,即使操作系统有内存剩余,仍可能会报内存满。就比如在创建扩展(..

2021-02-08 15:07:58 273

翻译 16.6. Supported Platforms

16.6.支持的平台如果PostgreSQL代码在一个平台上进行了认证且通过了回归测试,则认为PostgreSQL支持该平台(即CPU架构与操作系统的组合)。当前,大部分兼容性测试均通过https://buildfarm.postgresql.org/的机器自动完成。一般,PostgreSQL可在如下CPU架构上运行:x86,x86_64,IA64,PowerPC,PowerPC 64,S/390,S/390x,Sparc,Sparc 64,ARM,MIPS,MIPSEL以及PA-RISC。虽.

2021-02-08 15:04:17 168

翻译 16.5. Post-Installation Setup

16.5安装完成后的设置16.5.1.共享库对于有些操作系统,你需要告诉系统如何发现新安装的共享库。 不需要此功能的系统包括FreeBSD,HP-UX,Linux,NetBSD,OpenBSD和Solaris。设置共享库检索路径的方式各平台不太一样,但一般都是设置LD_LIBRARY_PATH环境变量:在bourneshell(sh,ksh,bash,zsh)中:LD_LIBRARY_PATH=/usr/local/pgsql/libexport LD_LIBRARY_PATH..

2021-02-08 15:03:41 855

翻译 16.4.2. configure Environment Variables

16.4.2.configure环境变量除了上述选项,configure还可以使用许多环境变量。可在configure命令行指定环境变量。例如:./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'环境变量与命令行选项略微不同。环境变量还可提前设置:export CC=/opt/bin/gccexport CFLAGS='-O2 -pipe'./configure以下为一个可如此设置的变量列表:BISONbison程序CC

2021-02-08 14:57:09 420

翻译 16.4.1. configure Options

16.4.1.configure选项以下对configure的部分选项进行解释(使用./configure --help获取更多帮助)。16.4.1.1.安装路径该选项控制makeinstall命令安装文件路径。大部分情况下,均可使用--prefix选项。--prefix=PREFIX将所有文件放置到PREFIX指定的路径下(而非默认的/usr/local/pgsql)。--exec-prefix=EXEC-PREFIX将体系结构相关的文件放置到与PREFIX不同的路径下。.

2021-02-08 14:56:13 713

翻译 16.4 安装

16.4安装 配置 安装的第一步是为系统配置代码树。这通过运行configure脚本实现。默认安装,可直接运行:./configure也可以跟安装文件分开:mkdir build_dircd build_dir/path/to/source/tree/configure [options go here]make默认配置会构建服务端及实用程序,以及仅需要C编译器的所有客户端应用程序及接口。默认安装在/usr/local/pgsql路径下。可通过为configu..

2021-02-08 14:54:28 250

翻译 第十六章 从源码安装数据库

16.从源码安装本章介绍使用源码安装PostgreSQL。如果使用预装版本,例如RPM或者Debian包,那么可忽略此章节,直接阅读相应包的安装指南即可。如果使用MinGW或Cygwin,在Windows下安装PostgreSQL,那么可参阅本章;如果使用Visual C++,那么请参见第17章。16.1步骤概要./configuremakesumake installadduser postgresmkdir /usr/local/pgsql/datachown po..

2021-02-08 14:44:39 170

翻译 第三部分 数据库服务管理

本部分涵盖PostgreSQL数据库管理相关的主题。包含软件安装、设置和数据库服务配置,用户和数据库管理以及一些维护任务。无论谁,只要运行PostgreSQL数据库服务,即使是仅个人使用,当然,最主要生产环境使用者,均应该熟悉本部分所述内容。新学者应该按顺序阅读本部分的内容。但是各章节是自包含的,所以可按需分别阅读。本部分中的信息以主题单元的叙述方式呈现。有关特定命令的完整描述,请参阅第六部分。刚开始的几个章节,即使对PostgreSQL不太了解也可以读懂,所以初学者可从此开始学习如何设..

2021-02-08 14:41:03 157

转载 PostgreSQL中的并行查询

转自一个专研PostgreSQL的团队:https://blog.csdn.net/pg_hgdb/article/details/113755826作者:瀚高PG实验室(HighgoPGLab) 丹心明月注:本文章主要翻译自《PostgreSQL 13.0 Documentation》第十五章PostgreSQL可生成使用多个CPU的查询计划,以更快的运行查询,即并行查询。有些查询并不能使用并行查询,或许是因为当前并行查询实现的限制,或许是因为没有比串行执行更好的选择。不过,对于那些可..

2021-02-08 13:54:40 805

翻译 14.5. Non-Durable Settings

14.5非持久设置持久性是数据库特性,以保证已提交事务即使在宕机或服务崩溃时仍有效。不过,这也给了数据库一定压力,所以如果无需此保证的话,可以调整PostgreSQL运行的更快。以下配置即为牺牲持久性而提升性能的示例。除非另有说明,否则在数据库软件崩溃的情况下仍然可以保证持久性;当使用这些设置时,只有操作系统的突然宕机才可能会造成数据丢失或损坏的风险。 将数据库群集的数据目录放置在内存支持的文件系统中(例如RAM磁盘); 关闭fsync; 关闭synchronous_comm.

2021-02-07 15:19:22 134

原创 14.4. Populating a Database

14.4填充数据库在刚开始使用数据库的时候,可能需要将大量数据插入数据库中。本章针对此情形,提出有效建议。14.4.1禁用自动提交当使用多个INSERT时,建议禁用自动提交,并在末尾使用一个commit提交即可。多行提交较单行提交要有效率的多。14.4.2使用COPY使用COPY命令加载所有数据。如果使用COPY,那么就无需禁用自动提交。如果不能使用COPY,那么可以考虑使用 PREPARE来创建一个预准备的INSERT语句,然后使用 EXECUTE执行。14.4....

2021-02-07 15:04:09 151

翻译 14.3. Controlling the Planner with Explicit JOIN Clauses

14.3使用显式JOIN子句控制计划器在某种程度上,可以通过使用显式JOIN语法控制执行计划器。例如一个简单的查询:SELECT * FROM a, b, c WHERE a.id = b.id AND b.ref = c.id;计划器可能会使用任意顺序连接给定表。当查询仅涉及两三个表的时候,还可以有效遍历所有顺序;但当连接表较多时,效率就会很低。但当使用外查询时,就没有这种顾虑了:SELECT * FROM a LEFT JOIN (b JOIN c ON (b....

2021-02-07 14:13:33 139

原创 14.2.2. Extended Statistics

14.2.2扩展统计信息通常会看到因为查询中使用的多列是相关的从而导致查询使用了错误的执行计划。计划器一般假定多个条件是相互独立的,但当列值相关时,这种假设就不成立了。常规统计信息中,因为他们分别统计每个列的信息,因此无法获得有关跨列相关性的信息。但是,PostgreSQL可以计算多元统计信息,从而可以提供此类信息。因为列组合的可能性会很大,所以自动去进行统计不太现实。所以,可以通过创建扩展统计信息对象(extendedstatisticsobjects),通常被称作统计信息对象(sta...

2021-02-07 13:40:54 180

翻译 14.2. Statistics Used by the Planner

14.2计划器使用的统计信息14.2.1. Single-Column Statistics14.2.1单列统计信息正如之前章接所述,查询计划器需要预估检索的行以选择最优执行计划。本节简单介绍系统据以进行预估的统计信息。统计信息中包含表和索引中的所有行,以及每个表和索引所占用的磁盘块数。这些信息保存在表pg_class的reltuples和relpages列:SELECT relname, relkind, reltuples, relpagesFROM pg_class...

2021-02-05 17:53:51 139

翻译 14.1.3. Caveats

14.1.3注意事项EXPLAIN ANALYZE预估的运行时间与实际运行时间明显不同的原因,最重要的有两个。一是预估成本不包含到客户端的网络传输成本和I/O转换成本;二是,EXPLAIN ANALYZE所增加的测量开销可能很大,尤其是在gettimeofday()操作系统调用缓慢的计算机上。可以使用pg_test_timing工具来测量系统计时的开销。不能以EXPLAIN的结果推测另一个完全不同环境下的执行计划行为。一个极端的情形是,如果一个表仅占用一个磁盘页,那么无论是否有索引,执行计划..

2021-02-05 17:14:55 188

翻译 14.1.2. EXPLAIN ANALYZE

可以使用EXPLAIN的ANALYZE选项获取时间的执行计划预估。使用该选项,EXPLAIN会实际的执行查询,然后返回实际的返回行及运行时间。例如:EXPLAIN ANALYZE SELECT *FROM tenk1 t1, tenk2 t2WHERE t1.unique1 < 10 AND t1.unique2 = t2.unique2;QUERY PLAN-----------------------------------------------------------------

2021-02-05 16:19:44 1073 1

原创 14.1.1. EXPLAIN Basics

14.1.1 EXPLAIN基础执行计划的架构,是一个执行节点的树形架构。树最底层的节点为扫描节点:他们从表返回原始行。针对不同的表访问方式有不同的扫描节点:顺序扫描(sequentialscans)、索引扫描(indexscans)和位图索引扫描(bitmap indexscans)。还有一个不是来自表的行,例如VALUES子句,FROM中的返回集合的函数等,它们有自己的扫描节点类型。如果查询还需要进行连接,聚合,排序等其他操作,那在扫描节点之上还会有其他节点。执行计划的第一行含执行计划总的执...

2021-02-05 15:17:21 922

翻译 第十四章 性能优化

第十四章性能优化查询的性能可能受多方面因素影响。有些用户可以控制,有些是数据库系统的底层限定的设计。本章针对PostgreSQL性能的理解及优化进行了介绍。14.1使用EXPLAINPostgreSQL为每个查询生成一个查询计划。为查询选择正确的执行计划对于性能至关重要,所有PostgreSQL有一个复杂的计划器来完成此工作。可以使用命令EXPLAIN查看执行计划。默认EXPLAIN命令使用text输出格式,如果需要生成应用程序进一步解析的输出,可以输出XML,JSON或YAML...

2021-02-05 14:51:12 102

转载 第十三章 PostgreSQL的并发控制

第十三章 PostgreSQL的并发控制注:本文章主要翻译自《PostgreSQL 13.0 Documentation》第十三章本章介绍当多个会话同时尝试对相同数据进行访问时,PostgreSQL的行为。在此情形,目标是,在保证数据严格一致性的前提下,尽可能保证访问有效率。所有数据库应用程序开发者均需熟悉此章所述内容。13.1并发控制简介PostgreSQL提供了多种方式以控制对数据的并发访问。在数据库内部,数据的一致性使用多版本模式(多版本并发控制(Multiversion...

2021-02-03 15:56:25 1005

翻译 12.11. Limitations

12.11全文检索的限制当前PostgreSQL中全文索引的限制有: 词位大小必须小于2kb; tsvector的长度必须小于1MB; 词位的数量需小于2的64次方个; tsvector中位置的值需在0-16383间; tsquery中<N>,N的值不能大于16384; 每个词位的位置不能大于256; tsquery中词位+操作符的个数需少于32768; ...

2021-01-28 10:06:33 167

翻译 12.10. psql Support

12.10psql支持可从psql中查看文本检索配置相关信息:\dF{d,p,t}[+] [PATTERN] --如果省略PATTERN,则返回所有示例:=> \dF *fulltext*List of text search configurationsSchema | Name | Description--------+--------------+-------------public | fulltext_cfg |=> \dF *.fulltext.

2021-01-28 10:01:15 109

原创 12.9. GIN and GiST Index Types

12.9 GIN和GiST索引类型有两种可加速文本检索速度的索引。CREATE INDEX name ON table USING GIN (column); --column必须为tsvector类型CREATE INDEX name ON table USING GIST (column [ { DEFAULT | tsvector_ops } (siglen = number) ] ); --column需为tsvector或tsquery类型全文检索,建议使用GIN索引。可通过调

2021-01-28 09:40:41 139

原创 12.8. Testing and Debugging Text Search

12.8测试和调试文本检索在自定义文本检索配置之后,可使用本节介绍的函数对其进行测试。可以对整个配置进行测试,也可以分别对解析器和词典进行测试。12.8.1配置测试使用ts_debug对文本检索配置进行测试:ts_debug([ config regconfig, ] document text,OUT alias text,OUT description text,OUT token text,OUT dictionaries regdictionary[],OUT dic..

2021-01-28 09:37:39 164

翻译 12.7. Configuration Example

12.7配置示例文件检索配置指定将文档转换为tsvector所需的所有选项:用于将文本解析为token的解析器,然后将token转换为词位的词典。default_text_search_config指定默认配置。示例:CREATE TEXT SEARCH CONFIGURATION public.pg ( COPY =pg_catalog.english );定义文件,其内容:postgres pgpgsql pgpostgresql pg创建同义词词典:CREATE..

2021-01-27 13:33:38 175

翻译 12.6. Dictionaries

12.6词典词典用以消除在查询中不用考虑的词(即停止词:stopwords),并用以格式化不同词的不同形式,以使它们可以匹配。规范化之后的词称为词位(lexeme)。可以创建自己的词典,请参见PostgreSQL安装路劲contrib/下的示例。12.6.1停止词停止词即那种特别常见,几乎在所有文档中都会出现的词。所以在检索的时候可以忽略它们,不过它们会影响tsvector中的位置,从而影响排名:SELECT to_tsvector('english','in the li...

2021-01-27 13:24:31 215

翻译 12.5. Parsers

12.5解析器文本检索解析器会将文档解析为一个个token。当前PostgreSQL仅提供一个内置文本解析器。内置的文本解析器为pg_catalog.default。它可以识别23中token:解析器对于“letter”的解读,依赖于lc_ctype值。示例:postgres=# SELECT alias, description, token FROM ts_debug('foo-bar-beta1'); alias | ..

2021-01-27 09:32:08 131

原创 12.4 全文检索更多特性

12.4全文检索更多特性本节介绍与文件检索有关的其他函数和操作符。12.4.1文档处理PostgreSQL提供了用以处理tsvector格式的函数和操作符。tsvector||tsvector 连接。setweight(vector tsvector, weight "char") returns tsvectorlength(vector tsvector) returns integer vector中保存的词位数量。strip(vector tsve...

2021-01-26 16:09:17 240

翻译 12.3 文本检索控制

12.3 文本检索控制为实现全文检索,则必须可以从文档创建tsvector,从用户查询创建tsquery。而且,如果需要结果排序,那么需要能够根据查询关联度比较文本的功能。当然,友好的输出也至关重要。PostgreSQL可实现这些所有的需求。12.3.1解析文档PostgreSQL提供to_tsvector将文档转换为tsvector数据类型。to_tsvector([ config regconfig, ] document text) returns tsvectorto_tsv.

2021-01-26 14:32:46 436

原创 12.2 表和索引

12.2表和索引前面的示例,仅展示简单常量字符串的匹配,该节说明如何检索表数据,以及使用索引检索。12.2.1检索表可以不使用索引进行全文检索。以下为一个查询body中每行的title中包含词friend的简单示例:SELECT titleFROM pgwebWHERE to_tsvector('english', body) @@ to_tsquery('english','friend');该查询也会检索类似于friends、friendly的相关词。该查询指定配置为en..

2021-01-26 10:58:06 152

原创 第十二章 全文检索

12.1.1何为文档?文档(document)即为全文检索系统中的一个检索单元,例如一个杂志标题或者邮件信息。示例:SELECT title || ' ' || author || ' ' || abstract || ' ' || bodyAS documentFROM messagesWHERE mid = 12;SELECT m.title || ' ' || m.author || ' ' || m.abstract || ' ' ||d.body AS document.

2021-01-26 10:02:22 159

原创 第十一章 索引

11.1索引简介假设有表:CREATE TABLE test1 (id integer,content varchar);然后有常用查询语句:SELECT content FROM test1 WHERE id = constant;如果没有优化,那么此语句会全表扫描。但是如果在id列上创建了索引,那么效率会显著提高。可使用如下语句在id列创建索引:CREATE INDEX test1_id_index ON test1 (id);可使用 CREATE I..

2021-01-25 18:32:41 202

原创 Chapter 10. Type Conversion

Chapter 10. Type Conversion第十章.类型转换不管有意或无意,SQL语句表达式中总有可能混合了多种数据类型。虽然有时候,用户无需关注其中机制,但由PostgreSQL执行的隐式转换可能会影响查询的结果。如有必要,可采取显式类型转换。本章介绍PostgreSQL中类型转换的机制和用法。有关数据类型及其可用函数和操作符,请参见第8章和第9章。10.1. Overview10.1概览PostgreSQL搜索/解析器将词汇元素分为五个基本类:整数,非整数...

2021-01-22 13:20:57 155 3

原创 9.30. Statistics Information Functions

9.30统计信息相关函数PostgreSQL提供用以检索 CREATE STATISTICS命令生成的统计信息。9.30.1. Inspecting MCV Lists9.30.1检查MCV(most-common values)列表pg_mcv_list_items ( pg_mcv_list ) → setof recordpg_mcv_list_items返回在多列MCV列表中存储的项的一组描述。返回以下列:示例:SELECT m.* FROM pg_stati..

2021-01-21 15:08:15 161

RHEL7.1安装文档

本文档记录了自己安装RHEL7.1的过程,适合第一次学习安装的初学者参考。

2016-02-24

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

TA关注的人

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