PostgreSQL 转义、UNICODE、与SQL注入
背景 通过本文,你可以了解: 1. 如何在字符串中输入特殊字符,例如回车。 2. 如何在字符串中输入单引号。 3. 转义字符是什么?用法。 4. 在SQL标准中,反斜线是转义符吗?PostgreSQL如何使用反斜线转义?书写格式如何? 5. 为什么转义单引号存在SQL注入的风险?数据库有什么参数可以控制...
背景 通过本文,你可以了解: 1. 如何在字符串中输入特殊字符,例如回车。 2. 如何在字符串中输入单引号。 3. 转义字符是什么?用法。 4. 在SQL标准中,反斜线是转义符吗?PostgreSQL如何使用反斜线转义?书写格式如何? 5. 为什么转义单引号存在SQL注入的风险?数据库有什么参数可以控制...
背景 在触发器中,如果要提取触发该事件的记录,使用OLD和NEW关键字。 OLD.* , NEW.* 提取 对于for statement after触发器,触发的记录数可能是很多的,PostgreSQL 10.0增加了一个功能,中间表。 在触发器函数中,可以使用这个中间表,中间表的数据就是触发器涉及的数...
背景 作为一个完整的分布式数据库(sharding),没有分布式事务支持是不行的。 什么是分布式事务呢?比如我们把一个数据库比作一个小朋友,每个小朋友都有100块钱,然后A小朋友给了B小朋友20块钱,这样的话应该是A剩余80块,B剩余120块。如果在交易过程中B小朋友不小心把20块弄丢了,那么会怎么样呢? 理...
背景 潘金莲改变了历史吗? 网上的段子 潘金莲撑开窗户,撑窗户滴棍子掉下去了,于是西门庆看到了,于是他们相遇了。如果潘金莲同学当时没有开窗,那么她就不会遇到西门庆。 如果没有遇到西门庆,那么她就不会被迫出轨,那样武松哥哥就不会怒发冲冠为红颜,这样他就不会奔上梁山。 武松就不会奔上梁...
背景 PostgreSQL为进程模型,启动时、启动后会fork一些管理进程,以及用户连接时会产生用户的服侍进程。 例如 1. postmaster,负责监听 2. startup进程,负责recovery 3. logger, 负责写日志 4. shared buffer writer,负责通过LRU算...
背景 grouping sets 是多维分析语法,PostgreSQL 从9.5开始支持这种语法,常被用于OLAP系统,数据透视等应用场景。 《PostgreSQL 9.5 new feature - Support GROUPING SETS, CUBE and ROLLUP.》 由于多维分析的一个QUER...
背景 统计信息是数据库优化器用来计算SQL plan tree中每个NODE成本的依据,目前PostgreSQL的统计信息是开源数据库中最完备的。 包括继承表、以及全局的统计信息,每个字段的NULL值个数或百分比,平均字段宽度,唯一值个数或百分比,高频词,高频词的百分比,柱状图,线性相关性,数组字段的高频元素,...
背景 ICU是一个成熟的,被广泛使用的跨平台一致性全球化支持库。使用没有任何限制的开源许可,可以被商业、开源软件随意使用。 ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalizat...
背景 目前支持分区表的ON CONFLICT .. DO NOTHING ,暂时还不支持ON CONFLICT .. DO UPDATE Allow ON CONFLICT .. DO NOTHING on a partitioned table. ON CONFLICT .. DO UPDATE s...
背景 数据库发展了几十年,出现了很多产品,有面向OLTP(在线事务处理)的,有面向OLAP(在线分析)的。 虽然两个场景各有需求特色,但是企业需要为其需求买单,因为目前很少有产品可以同时满足在线处理和在线分析的需求。 比如一家企业,通常都有业务的波峰波谷,比如游戏业务,通常波谷可能是在凌晨,因为大多数人都睡了...