微信小程序数据库在哪?如何编写小程序数据库?
小程序数据库能够让数据的查询和整理更加便捷,也能尽量的让数据和运算靠近,但是有很多人反映找不到数据库,那么微信小程序数据库在哪呢?
之前,微信小程序是不能直接连数据库的,要通过小程序接口连接数据库。但是现在小程序功能完善了之后,小程序数据库就在小程序的后台里。对于使用者来说,只需要打开小程序就能使用数据库,但是对于开发者来说,更应该了解的是关于小程序数据库的编写问题。
如何编写"数据库小程序"呢:
大家可能觉得,只要数据库支持函数语言,或者过程语言,就可以编写"数据库小程序"了。
这个想法固然没错,但是要知道通常数据库提供的过程语言是比较简陋的,包括Oracle的PL/SQL,PostgreSQL的plpgsql在内,虽然它们强大,它也无法与常用的编程语言例如GO, Java, Python, R等相提并论,特别是在一些非常专的领域,可能就有非常专业的语言来支撑,比如数据分析领域R语言就首当其冲。
那么要让"数据库小程序"能够担当起真正的小程序功能,看样子仅支持数据库的"简陋"语言是不够的。以下是具体要求:
1 支持地球语言
PostgreSQL是这样一个数据库,理论上你可以把任何小程序开发语言(只要是地球语言),作为它的数据库端编程语言,目前已支持的语言就已经好多好多了,以语言插件的方式提供。
C, plpgsql, plpython, plperl, pltcl, plR, pljava, plv8, ..... 恕我叫得出名字的编程语言较少,实际上支持的语言数不胜数啊
除了考虑编程语言的支持,我们还需要考虑点其他的吗?
2 底盘扎实、扩展能力强、(可靠*、HA、*能等就不说了,都是底盘技术)
PostgreSQL的开放*不仅仅表现在编程能力的扩展方面,在PostgreSQL的生态中有很多贴近业务的用法,比如在PostgreSQL中存储和处理化学分子、存储和处理图像、存储和处理基因数据、存储和处理文本(包括高效正则、模糊、全文检索等技术,文本相似度查询等)、访问外部任意数据源等。
一些比较有意思的小程序数据库特*如下:
1. 支持使用常见的C, plpgsql, plpython, plperl, pltcl, plR, pljava, plv8等语言编写数据库端函数,
同时你还可以根据PostgreSQL提供的扩展接口,扩展更多的编程语言
.postgresql.org/docs/devel/static/xplang.html
2. 数据类型支持丰富,例如支持传统数据类型外的包括 数组、序列, UUID , jsonb, GIS, text, 异构类型,Key-Value类型(hstore), 全文检索 , 化学 , 图像 , 基因 , 外部数据源 ... 等,同时支持自定义扩展类型
3. 支持btree, hash, gin , gist, spgist, brin , rum , bloom等索引类型,
这些索引可以用于支持常见的排序,大于,小于,等于,任意列等于查询,同时也可以支持异构类型如数组、全文检索的匹配,图片文本的相似度排序,交叠查询,地理位置的运算,KNN等,支持块级索引(在IoT场景很好用)等。
同时允许用户自定义索引接口,支持更多的数据类型。
4. SQL语法层面支持大部分2013 SQL标准,以及扩展的SQL用法: returning, 游标, 异步消息, ECPG, 窗口查询,递归查询,grouping set, upsert, skip lock, ad lock 等高级语法。
5. JOIN方面,支持hash join , merge join , nestloop join ,
6. 优化器方面,支持自定义成本因子, CBO , 遗传算法等。
7. 另外可以利用GPU加速运算,包括隐式加速,也可以显示加速。
隐式指数据库自身提供的custom scan provider编程接口,已经有实现了的插件。
显式,指的是过程语言和CUDA的结合,例如PyCUDA。
8. 还可以用支持并行编程的语言来方便的实现多核处理,(目前PostgreSQL 9.6已经支持内置的并行计算(包括全表扫描、哈希JOIN,哈希聚合等操作))。
9. 通过FDW接口,访问几乎任意外部数据
现在大家知道微信小程序数据库在哪了吗?小编依然觉得,与其搜索数据库去使用,倒不如试着自己去开发数据库,这样还能参照自己的需要进行相应的开发。更多相关资料请关注微信小程序商店。
微信小程序数据库交互开发实例
微信小程序数据库交互怎么实现?
微信小程序怎么调用数据库?