首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于大数据那些事

关于大数据那些事

原创
作者头像
谭广健
发布2022-03-19 16:30:54
4020
发布2022-03-19 16:30:54
举报
文章被收录于专栏:谭广健的专栏谭广健的专栏

系统通过几年时间的沉淀,数据量越来越庞大,虽然定期有做人工清分库;但是这样都不是一个永恒的办法。不过开发的时候也没考虑到系统能坚挺这么多年和数据量这么庞大。所以现在记录一下系统开发时需要注意的问题。

1、ID的增加。

ID增加我们一般是通过其自增处理,但渐渐发现这个自增ID太多问题,记录一多就不好处理,并且容易出现查询的问题。因此从今以后建议使用雪花ID来做ID,不要用自增或时间戳做。

什么是雪花ID

snowflake是Twitter开源的分布式ID生成算法,结果是64bit的Long类型的ID,有着全局唯一和有序递增的特点。

最高位是符号位,因为生成的 ID 总是正数,始终为0,不可用。

  • 41位的时间序列,精确到毫秒级,41位的长度可以使用69年。时间位还有一个很重要的作用是可以根据时间进行排序。
  • 10位的机器标识,10位的长度最多支持部署1024个节点。
  • 12位的计数序列号,序列号即一系列的自增ID,可以支持同一节点同一毫秒生成多个ID序号,12位的计数序列号支持每个节点每毫秒产生4096个ID序号。

缺点也是有的,就是强依赖机器时钟,如果机器上时钟回拨,有可能会导致主键重复的问题。

2、设置主键和做索引

设置主键没什么好说的,反正这个主键一般就是ID了。但索引一定要做,这样减少不少的查询时间,但索引的另一个问题就是容易锁表,所以尽量不要反复update。。建议用AB数据表结构,AB数据表,就是将经常或当天的数据进行写入这个可以不用做索引,在晚上再将A数据全部写入到B表带索引。并且清A表,这样以后查询就方便多了。

3、数据缓存

在进行数据查询特别是字典数据,尽量做数据缓存,这样减少对数据库的IO处理,并且有效加速数据显示。

好吧以上就是我最近总结的大数据那些事情,最后再说一下SQLlit,其实能上SQLlit的就别上SQLSERVER,SQLlite数据也可以无限大并且方便,但要注意备份,我就尝试过因为SQLlit文件损坏导致数据丢失。至于怎么损坏目前未知道,但据其他人反馈在写入数据时如果断电数据文件损坏的几率很高,所以要注意。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、ID的增加。
    • 什么是雪花ID
    • 2、设置主键和做索引
    • 3、数据缓存
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档