#Database #Data #Sysadmin #Web #Postgres #SQL #tech Transactions
呃... 其实我也不熟悉你们 DBMS 理论那一套和实践那一套,不过我作为一个普通用户来看,不是特别理解这到底坑不坑(
当然我也不知道为什么一定要 Large Object 资源必须在一个 Transaction 里被释放,他们肯定有他们的一套理由,在搞清楚他们的核心理念之前我觉得我没有资本妄加评论
Large Object 这个大家开发过 DBMS 应用的肯定都知道,就是说一个大对象
Large Objects in PostgreSQL lets you store files/objects up to 4 TiB in size.
The main benefit of using Large Objects instead of a simple column is that the data can be read and written in chunks (e.g. as a stream), instead of having to load the entire column into memory.
它有没有对应的 SQL 去查询我不知道,但就我所知可以用 oid(ObjectID) 查询,我觉得嘛,这个 API 相当有用。因为不用再把数据分为普通数据(DBMS 可存)和文件了。这样的话系统管理、备份、统计、迁移的时候肯定也方便一点,不依赖于文件系统
如果是使用 native (libpq)的程序员我觉得肯定注意得到喽,因为文档上有嘛,至于别的语言做的绑定,封装的如上面所说也都应该有提到,不过教到大家 LO 的确是个不错的实践,或许,虽然这个概念还不如一些平等数据交换、分布式、WebSocket、推送系统火
See also: [PG LO Docs, Node PGLO Binding, Source Header]
呃... 其实我也不熟悉你们 DBMS 理论那一套和实践那一套,不过我作为一个普通用户来看,不是特别理解这到底坑不坑(
当然我也不知道为什么一定要 Large Object 资源必须在一个 Transaction 里被释放,他们肯定有他们的一套理由,在搞清楚他们的核心理念之前我觉得我没有资本妄加评论
Large Object 这个大家开发过 DBMS 应用的肯定都知道,就是说一个大对象
Large Objects in PostgreSQL lets you store files/objects up to 4 TiB in size.
The main benefit of using Large Objects instead of a simple column is that the data can be read and written in chunks (e.g. as a stream), instead of having to load the entire column into memory.
它有没有对应的 SQL 去查询我不知道,但就我所知可以用 oid(ObjectID) 查询,我觉得嘛,这个 API 相当有用。因为不用再把数据分为普通数据(DBMS 可存)和文件了。这样的话系统管理、备份、统计、迁移的时候肯定也方便一点,不依赖于文件系统
如果是使用 native (libpq)的程序员我觉得肯定注意得到喽,因为文档上有嘛,至于别的语言做的绑定,封装的如上面所说也都应该有提到,不过教到大家 LO 的确是个不错的实践,或许,虽然这个概念还不如一些平等数据交换、分布式、WebSocket、推送系统火
See also: [PG LO Docs, Node PGLO Binding, Source Header]
GitHub
bleupen/node-pg-large-object
Large object support for PostgreSQL clients using the node-postgres library. - bleupen/node-pg-large-object
duangsuse::Echo
学习的话还得先在相对标准又简单的环境(如 SQLite)下熟悉 CRUD
CRUD 语句比较简单,都学过了(那么我就再花点时间顺便学一下,感谢 dalao 的分享 #SQL #Postgres
现在也比较合适,因为我在学校的时候学着分析了一下实际的应用,理工两开花,结果非常成功。而且我发现 Kotlin + SpringBoot 开发起来非常模式化、MVC 模式非常简单(就是几个 Entity、后面那些东西都是自动生成的,写个
所以还是比较适合学这类东西的(属于 JPA 层(当然实际上 Web 后端和前端都还有很多知识可以学,不过其实能借助文档比较不用脑子的学会了,不需要多少思考,代价就是不会有太大提升
顺推博文 SQL查询语句及关系代数复习题
这是代码 #code 据说实现的是一个 sorted set 的 table???
INSERT INTO array_test(id, items) VALUES (1, ARRAY[1])
比较简单不讲
ON CONFLICT (id) DO
下面的语句是插入 id 冲突的时候执行的
UPDATE SET items = ARRAY(SELECT DISTINCT item FROM unnest(array_test.items || excluded.items) item ORDER BY item)
WHERE NOT array_test.items && excluded.items
RETURNING items;
子句们(不是所有 #PL 爱好者都必须把 AST 之类的东西搞出来或者指出那个语句什么组成情况...)
简单到幼儿园级别的 SQL 子句就不说了(比如
当然我只是顺手找了点文档而已... 具体实现逻辑自己分析吧(我看了个大概)(因为我准备发书单来着...)
现在也比较合适,因为我在学校的时候学着分析了一下实际的应用,理工两开花,结果非常成功。而且我发现 Kotlin + SpringBoot 开发起来非常模式化、MVC 模式非常简单(就是几个 Entity、后面那些东西都是自动生成的,写个
interface
和几个 Spring EL 一 瞬 解 决模型层查询问题,Controller 层都非常 trivial,@ResponseBody
可以直接组织起 JSON 来,不需要脑子),决定赶快做一个练手(别怪我写的东西太 trival... 或许还不如 OI 生一天的,当然现在 OI 生可能也有些不是多复杂的东西(甚至 dfs 深度优先搜索不会做都不是不可能),当然我觉得都差不多,没啥有意思的算法,就是拿那几个接口绑定一下完了,Xposed 插件什么的都一样,我觉得写这种东西应该比编写效率和建模分析能力,当然也可以当我智障好了。这就轻松多了)所以还是比较适合学这类东西的(属于 JPA 层(当然实际上 Web 后端和前端都还有很多知识可以学,不过其实能借助文档比较不用脑子的学会了,不需要多少思考,代价就是不会有太大提升
顺推博文 SQL查询语句及关系代数复习题
这是代码 #code 据说实现的是一个 sorted set 的 table???
INSERT INTO array_test(id, items) VALUES (1, ARRAY[1])
比较简单不讲
ON CONFLICT (id) DO
下面的语句是插入 id 冲突的时候执行的
UPDATE SET items = ARRAY(SELECT DISTINCT item FROM unnest(array_test.items || excluded.items) item ORDER BY item)
WHERE NOT array_test.items && excluded.items
RETURNING items;
unnest
(): This function is used to expand an array to a set of rows.子句们(不是所有 #PL 爱好者都必须把 AST 之类的东西搞出来或者指出那个语句什么组成情况...)
UPDATE SET
: UPDATE changes the values of the specified columns in all rows that satisfy the condition. Only the columns to be modified need be mentioned in the SET clauseSELECT DISTINCT
: The SELECT DISTINCT statement is used to return only distinct (different) values. RETURNING(of UPDATE)
: The optional RETURNING clause causes UPDATE to compute and return value(s) based on each row actually updated简单到幼儿园级别的 SQL 子句就不说了(比如
ORDER BY
)当然我只是顺手找了点文档而已... 具体实现逻辑自己分析吧(我看了个大概)(因为我准备发书单来着...)
LIOLOG
SQL查询语句及关系代数复习题
数据库原理SQL查询语句及关系代数期末复习
#life #dev duangsuse 落实 10:30 准时睡觉『政策』。 🐱
考虑到健康原因(不让自己的努力白费),每晚 10:30(h:m) 必须立即睡觉
== duangsuse::Echo 参考 #Telegram hashtags
duangsuse::Echo 常年利用 hastags 标记消息所含知识领域,并且,这也会为未来 Echo 频道进行简单准确的数据统计带来可能(不然,我也有其他手段,比如 NLP、统计预测)
以下是新的标签实例(不区分大小写、不能保证消息只含这些标签):
== 消息平台部分
#Telegram #zhihu #Github #so #Coolapk #book #wiki
== 注释部分
#life #China #School #Statement #lib #recommended #low #fix
#project #blog #share #Learn #paper
#dev #tech #art #meetUp #conference
#Moha #Haha
#gnu
#Microsoft #Mozilla #WeChat #QQ #Weibo #Tencent #Baidu #Ali #Qihoo
#tools #code
== 程序设计语言部分
#Kotlin #Java #JavaScript #JavaScript_ES6 #TypeScript
#Rust #Go #Swift #Dart #Crystal
#Ruby #Python #Perl #Tcl #Lua #PHP
#C #D #Cplusplus #CSharp #Objc
#Pascal #Fortran #Delphi #Ada #Basic #VisualBasic
#Scheme #Haskell #Scala #Clojure
#TeX #Graphviz
#Octave #Matlab
#Shell
(有些写出来是为了鼓励我去写,其实不一定真的写过)
== 软件平台部分
#Android #Windows #Win32 #MacOS #Java #Java_JVM #CLR #Qt #GTK #Tk #WxWidgets
#CSS #XML #JSON #KDE #Postgres #dotnet
== 软件技术领域部分
#backend #sysadmin #frontend #sysadmin_net
#OI #CS #IT #Informatics
#stat #ann #ann_dnn #machl
#math #math_linearAlgebra #math_discrete
#se #se_dia #se_ci #se_ee
#comm #net #www #web #http #html #mail #wireless
#circuit #embedded #os #db #db_relAlgebra #SQL
#bin #encoding #encoding_audio #encoding_image #encoding_video #encoding_text
#hpc #parallelism #distributed #simd #gpgpu #crypto
#pl #pl_plt #ce_vee #ce #ce_optimize #fp_monad #fp_proof #fp #oop #oop_arch #sp #parser
#algorithm #struct #lists #maps #sets
#security #security_lowlevel
#signalProc #nlp #phonetic
#cg #cg_dip #cg_3d #cg_2d #cg_lowlevel
#gui #gui_animation #gui_layouts #cli #visualization
考虑到健康原因(不让自己的努力白费),每晚 10:30(h:m) 必须立即睡觉
== duangsuse::Echo 参考 #Telegram hashtags
duangsuse::Echo 常年利用 hastags 标记消息所含知识领域,并且,这也会为未来 Echo 频道进行简单准确的数据统计带来可能(不然,我也有其他手段,比如 NLP、统计预测)
以下是新的标签实例(不区分大小写、不能保证消息只含这些标签):
== 消息平台部分
#Telegram #zhihu #Github #so #Coolapk #book #wiki
== 注释部分
#life #China #School #Statement #lib #recommended #low #fix
#project #blog #share #Learn #paper
#dev #tech #art #meetUp #conference
#Moha #Haha
#gnu
#Microsoft #Mozilla #WeChat #QQ #Weibo #Tencent #Baidu #Ali #Qihoo
#tools #code
== 程序设计语言部分
#Kotlin #Java #JavaScript #JavaScript_ES6 #TypeScript
#Rust #Go #Swift #Dart #Crystal
#Ruby #Python #Perl #Tcl #Lua #PHP
#C #D #Cplusplus #CSharp #Objc
#Pascal #Fortran #Delphi #Ada #Basic #VisualBasic
#Scheme #Haskell #Scala #Clojure
#TeX #Graphviz
#Octave #Matlab
#Shell
(有些写出来是为了鼓励我去写,其实不一定真的写过)
== 软件平台部分
#Android #Windows #Win32 #MacOS #Java #Java_JVM #CLR #Qt #GTK #Tk #WxWidgets
#CSS #XML #JSON #KDE #Postgres #dotnet
== 软件技术领域部分
#backend #sysadmin #frontend #sysadmin_net
#OI #CS #IT #Informatics
#stat #ann #ann_dnn #machl
#math #math_linearAlgebra #math_discrete
#se #se_dia #se_ci #se_ee
#comm #net #www #web #http #html #mail #wireless
#circuit #embedded #os #db #db_relAlgebra #SQL
#bin #encoding #encoding_audio #encoding_image #encoding_video #encoding_text
#hpc #parallelism #distributed #simd #gpgpu #crypto
#pl #pl_plt #ce_vee #ce #ce_optimize #fp_monad #fp_proof #fp #oop #oop_arch #sp #parser
#algorithm #struct #lists #maps #sets
#security #security_lowlevel
#signalProc #nlp #phonetic
#cg #cg_dip #cg_3d #cg_2d #cg_lowlevel
#gui #gui_animation #gui_layouts #cli #visualization