当前位置: 首页 > news >正文

网站建设若干意见长春南京小学网站建设

网站建设若干意见,长春南京小学网站建设,如何免费搭建网站,wordpress新注册用户不发送邮件当我们选择数据库的主键类型时,通常会考虑自增数字或者 UUID。但是这两种类型都有优缺点,自增字段简单有序,性能良好,最大的问题是无法保证全局唯一性,分布式场景受限;UUID 具有全局唯一性,适合…

当我们选择数据库的主键类型时,通常会考虑自增数字或者 UUID。但是这两种类型都有优缺点,自增字段简单有序,性能良好,最大的问题是无法保证全局唯一性,分布式场景受限;UUID 具有全局唯一性,适合分布式应用,但是早期版本的 UUID 具有随机性,性能不如自增数字。

不过,随着 UUIDv7 的出现,已经解决了 UUID 没有随着时间递增的问题,它的组成如下:

在这里插入图片描述

UUIDv7 包含 128 比特(每 4 比特组成一个十六进制数字),具体包含:

  • 48 比特时间戳(精度为毫秒);
  • 4 比特UUID 版本(7);
  • 12 比特随机数字;
  • 2 比特(UUID 类型);
  • 62 比特随机数字。

完整的 UUIDv7 介绍可以参考 RFC 9562。

UUIDv7 最大的优势是具有时间递增性和全局唯一性,非常适合作为数据库的主键,包括分布式数据库。

很多编程语言都提供了生成 UUIDv7 的代码库,不过今天我们要介绍的是在数据库中使用 SQL 实现 UUIDv7,完全不需要依赖其他组件。

首先,我们来看一下 PostgreSQL 中的实现:

select-- timestamplpad(to_hex(((extract(epoch from now()) * 1000)::bigint >> 16)), 8, '0') || '-' ||lpad(to_hex(((extract(epoch from now()) * 1000+ (date_part('milliseconds', now())::bigint % 1000))::bigint & 0xffff)), 4, '0') || '-' ||-- versionlpad(to_hex((0x7000 + (random() * 0x0fff)::int)), 4, '0') || '-' ||-- variantlpad(to_hex((0x8000 + (random() * 0x3fff)::int)), 4, '0') || '-' ||-- randomnesslpad(to_hex((floor(random() * (2^48))::bigint >> 16)), 12, '0') AS uuid7;uuid7                               |
------------------------------------+
01904fcb-0ee8-7d9c-a192-000052989c99|

把上面的查询定义为一个函数,就可以实现代码复用了。

接下来是 SQLite 中的实现:

select-- timestampformat('%08x', ((strftime('%s') * 1000) >> 16)) || '-' ||format('%04x', ((strftime('%s') * 1000)+ ((strftime('%f') * 1000) % 1000)) & 0xffff) || '-' ||-- versionformat('%04x', 0x7000 + abs(random()) % 0x0fff) || '-' ||-- variantformat('%04x', 0x8000 + abs(random()) % 0x3fff) || '-' ||-- randomnessformat('%012x', abs(random()) >> 16) as value;value                               |
------------------------------------+
01904fd0-3dae-7460-8d4c-7d0c6b483299|

SQlite 没有自定义函数,可以把上面的查询定义为一个视图,实现代码复用。

其他数据库也可以按照相同的思路实现,欢迎补充。

http://www.yayakq.cn/news/398250/

相关文章:

  • 华为云建站官网网站外链的作用
  • 集团建设网站手机号申请邮箱
  • 南通市交通建设处网站中国万网
  • 做网站视频学什么专业注册wordpress博客
  • 公司为什么要做网站手机赚钱
  • 建设众筹类网站做网站的女生多么
  • 网络营销课程免费seo网站关键词优化价格
  • 有在网上找做网站的人么平面设计师必备网站
  • 厦门电商网站成都科盛兴网站建设有限公司
  • 兰州网站设计公司哪家最好微博营销
  • 网站建设路由器怎么设置广州市研发网站建设平台
  • 网站建设的开发方式企业网站备案名称要求
  • 网站 搭建 亚洲服务器上海装修做网站的倒闭了
  • 沈阳房地产网站开发php网站支付宝接口
  • 门户网站html厦门城乡建设局网站
  • 网页模板网站cmswordpress常用函数大全
  • 宝山宜昌网站建设贵阳建设网站公司
  • 泉州专业网站开发公司大朗镇网站建设
  • 网站设计美工要怎么做建筑装饰工程
  • 阿里云域名怎么做网站网站移动端
  • 网站建设策划书有哪些内容兰陵成都设计公司
  • Vs做的网站调试时如何适应网页网站改版 新闻
  • 做同城购物网站赚钱吗建设电商网站哪个平台比较好
  • 湖南网站开发公司想做服装电商怎么入手
  • 30分钟快速建设网站seo排名专业公司
  • 免费建设音乐网站整合营销传播方法包括
  • 宁安网站建设花瓣网是仿国外那个网站做的
  • 山东网站seo公司移动版网站开发
  • 网站的优化是什么意思wordpress页面文字首行缩进
  • 官方网站入口wordpress地图定位