自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

让我思考一下

数据库内核开发工程师

  • 博客(110)
  • 资源 (3)
  • 收藏
  • 关注

原创 LightDB支持自定义操作符

定义一个新的操作符 name。定义操作符 的用户会成为该操作符的拥有者。如果给出一个模式名,该操作符将被创建 在指定的模式中。否则它会被创建在当前模式中。

2023-01-11 11:23:27 10

原创 LightDB中的插件介绍——system_stats

system_stats是postgresql的一个开源插件,github:https://github.com/EnterpriseDB/system_stats。可以用于监控系统的cpu、磁盘、IO、内存、网络、进程、操作系统信息。该插件同样可用于LightDB数据库中。

2023-01-06 14:01:32 17

原创 LightDB中CREATE DOMAIN详解

域主要被用于把字段上的常用约束抽象到一个单一的位置以便维护。例如, 几个表可能都包含电子邮件地址列,而且都要求相同的 CHECK 约束来验证 地址的语法。可以为此定义一个域,而不是在每个表上都单独设置一个约束。域本质上是一种带有可选约束(在允许的值集合上的限制)的数据类型。定义一个域的用户将成为它的拥有者。),那么域将被创建在该指定的模式中。域的名称在其模式中的类型和域之间必须保持唯一。当一个域有多个CHECK约束,将按照其名字的 字母顺序测试它们。要创建一个域,你必须在其底层类型上拥有USAGE特权。

2023-01-06 13:38:30 303

原创 LightDB支持百分号通配show查询

LightDB扩展了PostgreSQL中的SHOW功能,可通过通配符进行查询,可以展示多个配置信息。

2023-01-05 15:17:35 10

原创 LightDB兼容MySQL部分函数

可加载LightDB中的myfce插件,即可使用。下面我们看一下MySQL中这4个函数的用法。

2023-01-05 14:33:09 127

原创 LightDB中Limit使用详解

另外LightDB除了支持PostgreSQL中的Limit语法,还支持MySQL中的Limit语法。我们先看一下MySQL中的Limit语法,与PostgreSQL语法相近,只不过是limit m,n的形式,表示含义与PostgreSQL中limit n offset m相同。我们先看一下PostgreSQL中Limit语法的使用,在PostgreSQL中Limit的文档。LightDB支持Limit语法,同时支持PostgreSQL和MySQL中的Limit语法。更多可参考LightDB官网。

2023-01-05 09:48:35 8

原创 LightDB支持sysdate

更多可参考LightDB官网:https://www.hs.net/lightdb。对此,在PostgreSQL、LightDB中有类似的函数实现。在Oracle中有个函数sysdate,可获取当前系统时间。

2023-01-04 15:43:47 8

原创 LightDB兼容Oracle数据类型

不同数据库支持的数据类型是不同的,其中PostgreSQL支持的数据类型尤其丰富。其实,很多情况下,不同数据库中最常用的数据类型都差不太多,很多只是名字不一样,比如PostgreSQL中的numeric与Oracle中的number,PostgreSQL中的timestamp与Oracle中的datetime等,因此在实际开发中,可以直接应用LightDB中相近的数据类型或者直接应用Oracle数据类型亦可。LightDB官网: https://www.hs.net/lightdb。

2023-01-04 14:15:15 6

原创 LightDB兼容Oracle字符串连接||

LightDB以及Oracle都支持字符串连接||,但是语法细节有所不同,Oracle支持的连接类型更多,不但支持字符串和字符串的连接还支持非字符串的连接。在PostgreSQL中,不支持整型与整型的拼接,对此,LightDB做了兼容,增加了这一功能。支持的详细情况,可查看。更多请参考官方文档。

2023-01-04 11:03:17 30

原创 LightDB分区表语法

LightDB支持声明式分区语法,所谓声明式分区就是PostgreSQL提供了相应的DDL语句来创建分区表。LightDB支持三种方式的分区:Range范围分区,List列表分区,Hash哈希分区。实际上,在对SQL进行优化时,其中一点就是对大表进行分区,那么多大数据合适使用分区表呢?一般取决于具体的应用,不过也有个简单的基本规则,即表的大小超过了数据库服务器的物理内存大小时使用。LightDB支持分区表,分区表是一个非常有用的功能。

2023-01-03 14:07:04 13

原创 LightDB中的WITH查询

WITH提供了一种方式来书写在一个大型查询中使用的辅助语句。这些语句通常被称为公共表表达式或CTE,他们可以被看成是定义只在一个查询中存在的临时表。在WITH子句中的每一个辅助语句可以是一个SELECT、INSERT、UPDATE或DELETE,并且WITH子句本身也可以被附加到一个主语句,主语句也可以是SELECT、INSERT、UPDATE或DELETE。首先是WITH中的SELECT用法,WITH中SELECT的基本价值是将复杂的查询分解称为简单的部分。我们将具体举一些例子进行说明,下面先造数据。

2022-12-26 22:29:55 14

原创 LightDB支持AUTO_INCREMENT

在使用数据库系统的业务设计开发中,有大量场景需要唯一 ID 作为某种业务对象的标识,例如用户身份的唯一 ID、业务订单的唯一 ID 等,并且将定义成唯一 ID 的列作为数据库中表的主键进行约束。以 MySQL 为例,在列定义中提供了AUTO_INCREMENT 属性来生成唯一 ID,在插入数据时,通过 AUTO_INCREMENT 列,能够高性能地为新纪录行自动生成唯一、自增、连续的 ID,满足单库单表上的业务需求。除此之外,LightDB还支持identity功能,也可实现自增列功能。

2022-12-22 12:09:23 15

原创 LightDB支持层次查询CONNECT BY

LightDB支持层次查询,兼容Oracle中的CONNECT BY语法。什么是层次查询呢?在关系数据库中,表中的记录之间有时是有层次关系的,例如员工分为管理者与被管理者,机构分为上级与下级,家族成员分为长辈与晚辈等。其中最顶层的节点称为根节点,即层次级别为1的节点,除了根节点,其他节点都是子节点。对此,LightDB数据库提供了一种层次查询方法,又称树形查询,能够将一个表中的数据按照记录之间的关系以树状结构的形式显示。

2022-12-15 17:15:57 15

原创 LightDB支持WITH PRIMARY KEY

更多请参考LightDB官网:https://www.hs.net/lightdb。LightDB数据库支持建表时指定。语法,表示创建一个表,含有。

2022-12-15 09:51:48 14

原创 LightDB支持WITH UPDATE CURRENT_TIMESTAMP

为MySQL语法,Oralce与PostgreSQL都不支持,LightDB对此功能做了兼容。不能同时使用,很容易理解,同时使用对业务没有什么实际意义。具体的为在建表时可以指定。,为自动更新时间戳属性。

2022-12-15 09:35:43 13

原创 LightDB支持ON UPDATE CURRENT_TIMESTAMP

熟悉Mysql的知道Mysql是支持ON UPDATE CURRENT_TIMESTAMP自动更新时间戳功能的,对此LightDB也实现了该功能。

2022-12-14 14:18:28 18

原创 LightDB中视图以及物化视图的使用

视图是非常常用的一个功能,数据库本身就含有非常多的系统视图,用户也会在应用中大量使用视图,所以这里我们看一下LightDB中视图以及物化视图的使用。

2022-12-13 11:08:39 19

原创 LightDB中的插件介绍之lt_hint_plan

熟悉PostgreSQL的都知道有一个pg_hint_plan插件,可以通过该插件让用户自己指定生成定制的执行计划,而不是完全让优化器自己生成。这样的好处是让优化器不能生成最优的执行计划时,用户可以自己指定生成最优的执行计划,从而使性能大幅提高。具体的就是可以使用pg_hint_plan插件以特殊的注释形式来提示SQL语句应该如何执行。在LightDB中,lt_hint_plan功能用法与之类似。

2022-12-12 13:39:11 213

原创 LightDB中的绑定变量使用

LightDB支持绑定变量,绑定变量在应用开发中是十分有用的,不但可以提高性能而且可以使应用更安全,避免SQL注入攻击问题。下面我们就看一下LightDB中如何使用绑定变量。LightDB中绑定变量的使用主要通过:PREPARE、EXECUTE、DEALLOCAT三者实现。分别为预备语句,执行,删除功能。更多可参考恒生LightDB官网。

2022-12-09 10:48:18 17

原创 LightDB中的MERGE语句使用介绍

将源表中的数据分别与目标表中的数据根据指定条件进行比较,如果匹配,则利用源表中的记录更新目标表中的记录,如果不匹配,则将源表中的记录插入目标表中。使用MERGE语句操作时,可以将UPDATE、INSERT、DELETE操作融为一体,用户需要具有源表的SELECT对象操作权限以及目标表的INSERT、UPDATE对象权限。MERGE语句在OLAP系统中应用比较广,在AP系统中,经常需要同时读取多个数据源,而其中的很多数据是重复的,所以可以使用MERGE语句有条件地进行积累的添加或修改。

2022-12-08 16:06:03 18

原创 LightDB兼容Oracle table_exists_action功能

为了持续提高对Oracle的兼容性,LightDB的下一版本将支持类似Oracle impdp中的table_exists_action功能。主要目的在于给予用户更多的选择权,即当将要导入的表在库中已存在时,如何处理。LightDB是恒生电子推出的同时支持在线事务处理与在线分析处理的融合型分布式数据库产品,具备SQL兼容性高、容量弹性伸缩、金融级高可用、现代硬件融合、纯内存计算等核心特性,主要适用于对可用性、一致性要求较高的系统。可以看到lt_restore已经支持。

2022-11-11 13:53:24 390

原创 LightDB支持表函数

表函数是用户自定义的返回集合(嵌套表或可变数组,当前仅支持嵌套表)的PL/SQL函数。通过在SELECT语句的TABLE短语中调用表函数,可以像查询数据库表一样从表函数的返回集合中查询数据。res nt;end;end;end;

2022-09-16 10:46:43 128

原创 LightDB中的Oracle兼容之ROWNUM

LightDB兼容部分oracle特性,并在持续提高oracle的兼容性。本文主要讲解oracle中的典型语法rownum在lightdb中的兼容。LightDB对rownum的兼容性非常之高,支持在SELECT、UPDATE、DELETE中使用rownum,支持分区表中使用ROWNUM。另外,我们还对rownum性能实现了优化,实现了oracle中的count stop key。大幅提升了rownum的性能。我们做一个测试,通过ltbench创建大表。100万行数据,用时不到2ms。

2022-08-23 14:44:39 111

原创 LightDB分布式版本执行计划显示设置

LightDB支持分布式版本,通过安装插件canopy实现分布式功能。用法,创建CN节点,创建多个worker节点。,添加worker节点,添加好后,创建分布表。

2022-08-19 10:32:53 100

原创 LightDB中的lt_dump

我们知道Postgres中可通过pg_dump、pg_dumpall命令进行数据库的逻辑备份。类似的在lightdb中,可通过lt_dump、lt_dumpall命令进行数据库的逻辑备份,用法相同。

2022-08-12 15:12:35 41

原创 LightDB中的表

本文学习一下LightDB中的表,涉及建表语句,临时表等,分布式表等内容见。

2022-08-08 14:25:44 159

原创 LightDB中SELECT字段取别名的两种方法

方法二: 不用as,直接在字段名称后面加上别名,中间用空格隔开。方法一: as 别名。

2022-08-04 15:28:32 52

原创 LightDB中的存储过程(十)—— 批绑定

LightDB支持存储过程,除了支持Postgres的plpgsql存储过程,还兼容Oracle的存储过程,新增了plorasql过程语言。中我们介绍了存储过程中的游标,这一篇主要讲述存储过程中的批绑定。批绑定是PL/SQL中引入的提高程序运行性能的重要技术,可以实现SQL引擎和PL/SQL引擎之间数据的批量传递。我们下面进行详细的学习。...

2022-08-04 10:15:40 40

原创 LightDB中的存储过程(九)—— 游标

LightDB支持存储过程,除了支持Postgres的plpgsql存储过程,还兼容Oracle的存储过程,新增了plorasql过程语言。中我们介绍了存储过程中的包,这一篇主要讲述存储过程中的游标。

2022-08-02 20:24:45 57

原创 LightDB中的存储过程(八)—— 包

包用于将相关的PL/SQL元素(过程、函数、变量、常量、自定义数据类型、游标等)组织在一起,作为一个完整的逻辑单元,编译后存储在数据库服务器中,作为一种全局的模式对象,供应用程序共享。包由包规范和包体两部分组成,在数据库中独立存储。其中包规范声明了包中的所有公共元素,这些公共元素可以在包的外部被引用。如果包规范中声明了存储过程,则需要在包体中实现。在包体中,还可以定义私有元素,这些私有元素只能在包内部引用,而不能在包的外部引用。官网去查看。而用户包就是用户自己创建的包。.........

2022-08-02 14:55:39 88

原创 LightDB中的存储过程(七)—— 子程序

LightDB支持存储过程,除了支持Postgres的plpgsql存储过程,还兼容Oracle的存储过程,新增了plorasql过程语言。上一篇中我们介绍了存储过程中的集合类型,这一篇主要讲述存储过程中的子程序。

2022-08-02 13:28:52 112

原创 LightDB中的存储过程(六)—— 集合类型

前面我们讲过,PL/SQL支持两种复合数据类型集合类型和记录类型。他们的区别是集合类型中所有内部组件具有相同的数据类型,而记录类型内部组件可以具有不同的数据类型。关于记录类型,可参考文章LightDB中的存储过程(五),本文重点讲述集合类型。集合类型类似于其他高级语言中的数组,是相同类型元素的集合。PL/SQL中的集合类型分为联合数组类型(AssociativeArray)、嵌套表类型(NestedTable)和可变数组类型(Variable-SizeArray)三种。联合数组。......

2022-08-02 11:06:04 37

原创 LightDB中的存储过程(五)—— 记录类型

记录类型时PL/SQL中的复合类型,内部组件可以具有不同的数据类型。可以简单理解为是C语言中的结构体。因此记录类型有着广泛的应用。复合数据类型时指包含内部组件的数据类型,可以参考LightDB中的复合类型这篇文章。PL/SQL支持两种复合数据类型集合类型和记录类型。他们的区别是集合类型中所有内部组件具有相同的数据类型,而记录类型内部组件可以具有不同的数据类型。集合类型后续文章会讲,本文主要讲述记录类型。......

2022-08-02 09:58:57 59

原创 LightDB中的存储过程(四)—— 动态SQL

PL/SQL中的静态SQL语句是指可以直接在PL/SQL中使用的SQL语句,其语法与标准的SQL语义完全一致。而动态SQL语句是指在执行时进行解析的SQL语句,通常PL/SQL程序中只可以执行静态的SQL语句,为了支持PL/SQL中动态SQL语句的执行,LightDB提供了本地动态SQL技术。由于PL/SQL程序执行时采用早期绑定,即在编译阶段对变量进行绑定,识别程序中标识符的位置,检查用户权限、数据库对象等信息,因此在PL/SQL中可以直接执行静态SQL语句。endif;end;......

2022-08-01 20:57:51 81

原创 LightDB中的存储过程(三)—— 静态SQL

PL/SQL中的静态SQL语句是指可以直接在PL/SQL中使用的SQL语句,其语法与标准的SQL语义完全一致。由于PL/SQL程序执行时采用早期绑定,即在编译阶段对变量进行绑定,识别程序中标识符的位置,检查用户权限、数据库对象等信息,因此在PL/SQL中并不是所有语句就可以出现的,下列类型的SQL语句是可以出现的,因为它们不会修改数据库模式对象及其权限。查询语句SELECTDML语句INSERT、UPATE、DELETE、MERGE(其中MERGE为lightdb22.1版本新增特性)......

2022-08-01 19:50:56 88

原创 LightDB中的存储过程(二)—— 控制语句

LightDB支持存储过程,除了支持Postgres的plpgsql存储过程,还兼容Oracle的存储过程,新增了plorasql过程语言。上一篇中我们介绍了存储过程基础内容,这一篇主要讲述存储过程中的控制语句。

2022-08-01 18:28:53 138

原创 LightDB中的存储过程(一)—— 存储过程基础

简而言之就是过程语言+SQL,也就是在原来SQL语言的非过程化基础上,增加了过程化的元素。包括变量、添加选择、循环控制、错误处理、集合、子程序、包、触发器等。存储过程程序以块为单位,每个语句块由声明部分、执行部分、异常处理部分构成。在语句块中可以定义过程化的变量、常量、数据类型、异常、子程序等,可以使用各自控制结构,可以嵌入各种SQL语句,从而实现复杂的业务逻辑处理。declare--声明部分lobtext='abc';sizint;......

2022-08-01 15:40:12 63

原创 LightDB中的数组类型

从上面的例子中可以看出,数组类型的定义就是通过在数组元素类型后面附加"[]"来实现的。方括号中可以给一个长度数字,也可以不给,这个长度数字是无效的,不会限制数组长度。LightDB支持表的字段使用定长或可变长度的一维或多维数组,数组的类型可以是任何数据库内建的类型、用户自定义的类型、枚举类型以及组合类型。我们继续看一下数组的函数,有很多数组函数,比如。...

2022-07-22 14:31:06 166

原创 LightDB中的枚举类型

枚举类型时包含一系列有序的静态值集合的一个数据类型,等于某些变成语言中的enum类型。与MySQL不一样,在LightDB中使用枚举类型需要先使用CREATE TYPE来创建此枚举类型。我们先列举个示例:定义好类型后,我怎么查看类型有没有创建或者查询有类型的具体定义呢?在ltsql中可通过命令查看枚举类型的定义:也可以直接查询系统表查看枚举类型的定义:枚举类型说明在枚举类型中,值的顺序是创建枚举类型时定义的顺序,所有的比较运算符及相关的聚集函数都可以支持枚举类型。可以看下面的例子:...

2022-07-14 18:07:10 126

原创 LightDB中的复合类型

LightDB中可以如C语言中的结构体定义一样定义一个复合类型。之所以支持复合类型,也是方便数据库应用程序开发的需要。可用语法创建复合类型,示例如下:创建好新的复合类型后,我们创建一个表,看一下如何插入复合类型的数据。除了采用’(var1, var2, …)'的方式表示复合类型常量,还可以采用ROW表达式语法来构造复合类型值。在大多数场合下,这种方法比用字符串文本的语法更简单,不用操心多重引号转义导致的问题。我们再看一下如何访问复合类型的数据:...

2022-07-05 14:08:59 53

PCB走线策略,适合大学同学参考学习使用。

PCB走线策略,非常适合刚开始画板子的同学学习一下,会非常有收获。

2016-07-17

直方图均衡化

直方图均衡化代码

2016-07-15

基于DSP的人眼定位系统

基于DSP的人眼定位系统。有详细代码设计及详细的说明文档及关键算法说明

2016-07-15

空空如也

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

TA关注的人

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