算法
文章平均质量分 62
Running Sun丶
少说,多做。
展开
-
MongoDB:count结果不准确的原因与解决方法
教训:MongoDB在分片后的集合上进行db.collection.count()操作时,出现结果不准确的现象,需要采用聚合的方法获取集合的count结果。c.存在孤立文档(因为不正常关机、块迁移失败等原因导致)b.shard分片正在做块迁移,导致有重复数据出现。a.操作的是分片的集合(前提);原创 2024-01-09 15:38:40 · 517 阅读 · 0 评论 -
增删改undo生成量??index是否写undo?Oracle DML语句(insert,update,delete) ‘回滚开销估算‘
假设表有2个索引,新增1000条记录,每个数据块大约可保存600条记录,新增第一个数据块保存了600条记录,同时变更了第1个索引30个索引块,第2个索引40个数据块,新增第2个数据块保存了400条记录,同时变更了第1个索引20个索引块,第2个索引60个数据块。2.从估算公式可以看出,索引对dml操作的影响非常大,当一个表有索引比没索引时做dml操作花费的undo开销非常具大,因为数据库要保证事务回滚的可行性,需要对索引做许多额外的事情,更新索引字段及批量insert操作尤其明显.原创 2024-01-05 09:54:45 · 728 阅读 · 3 评论 -
分库分表后,id主键处理的几种方式:
可以看出,只要处于同一毫秒内,所有的雪花算法id的前42位的值都是一样的,因此在这一毫秒内,能产生的id数量就是2的10次方到2的12次方,大概400w,肯定是够用了,甚至有点多了。1).存在单点问题,如果mysql挂了,就没法生成ID了。依赖机器的时钟,如果服务器时钟回拨,会导致重复ID生成。再接下来的10位是指产生这些雪花算法的工作机器id。这样就可以让每个机器产生的id都具有相应的标识。1).每次生成的ID是无序的,无法保证趋势递增。3).因为是全局唯一的ID,所以迁移数据容易。原创 2023-12-29 09:15:47 · 590 阅读 · 0 评论