在系统中生成ID的方式有很多种,现在简单分析一下各种方式的适用场景以及优缺点。1. UUID. 唯一性,在单体环境下或者分布式环境下都不会出现重复。但是UUID的劣势也是一大堆 a.没有可读性,导致程序在调试的时候数据不直观,不能像整型ID一样直观的看到大致运行到了哪条记录,如果比对两条数据,也不能很快看出谁先谁后。 b. 32位字符串太长,占用数据库资源。 c. 在
1. UUIDUUID经由一定的算法机器生成,为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素,以及从这些元素生成UUID的算法。优点:本地生成ID,不需要进行远程调用,时延低,性能高。缺点:UUID过长,16字节128位,通常以36长度的字符串表示,很多场景不适用,比如用UUID做数据库索引字段。没有排序,无法保证趋势递增
转载 2024-10-14 17:10:36
47阅读
前言上一篇介绍了如何使用中间件、拦截器、过滤器打造日志系统,接下来将介绍后端永远绕不过去的痛:参数验证。你是否曾经为了验证参数,写了一大堆 if - else ?然后还要判断各种参数类型?相似的结构在不同的方法里判断,却又要复制一遍代码?使用 DTO 可以清晰的了解对象的结构,使用 Pipes(管道)配合 class-validator 还可以对参数类型进行判断,还可以在验证失败的时候抛出错误信息
上图:索引建立规则:1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引; 3、经常与其他表进行连接的表,在连接字段上应该建立索引; 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 5、索引应该建在选择性高的字段上; 6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: 8、频繁进
转载 2024-03-18 10:12:48
142阅读
一个月前,比较得意,写了一个程序,把某个系统采用模拟浏览器方式注入数据 ---------------------------------------------------- 如果你看见这留言,以后千万不要这么干。...
原创 2016-03-25 08:44:25
146阅读
大家都对电商的商品查询并不陌生,比如我们想根据商品名称查询所有商品信息。有些技术的童鞋第一念头是搜索引擎;有些技术的童鞋第一念头是模糊查询,如like?(如果商品信息存放到mysql里,我们一般使用like查询)我们都知道,不同的场景决定了不同技术的使用场景也不同,那我们该如何选择呢?那我们先做个实验吧(实验对象是mysql8.0community版,windows10)1.安装mysql8.0c
原创 2020-11-30 11:59:59
194阅读
大家都对电商的商品查询并不陌生,比如我们想根据商品名称查询所有商品信息。 有些技术的童鞋第一念头是搜索引擎;
原创 2021-07-30 14:12:48
285阅读
1. 无序型id1. 优点 无序,无规律,不容易被遍历 2. 缺点 无顺序,没有实际意义,不容易记忆 3. 方案1. UUID2. 根据自己的规则生成例如数字+字母的唯一id2. 自增型id1. 优点 InnoDB 使用两种索引来组织数据,Clustered Index 和 Second Index  Clustered Index  与 主键有千丝万缕的关系,可以简单认为是相
转载 2024-06-28 13:40:12
58阅读
这次来聊一下唯一索引和普通索引。这两者的区别就不赘述了,通俗来说,唯一索引不允许出现重复,在插入或者修改操作的时候都需要进行判断是否发生唯一性冲突,若有,则不能进入插入或者修改操作。有一个数据库相关的面试题:如果数据表中更新操作经常发生阻塞,操作命中率也低,可能是什么原因导致的?这个问题的答案就是可能错误地使用了唯一索引。在不影响业务正确性的前提下,将唯一索引改成普通索引可以避免该问题。那到底从何
转载 2024-04-19 13:25:12
95阅读
JavaJava是世界上最古老,功能最强大的编程语言之一。它是一种通用的静态类型的语言。这意味着任何人都可以使用它。使用此编程语言没有特定的目的。Java还是一种面向对象的编程语言。这使其成为易于使用的编程语言之一。 Java还是一种可移植的编程语言,可以在WORA上运行(一旦在任何地方运行,编写一次)。这意味着您可以在特定计算机上编写Java程序,并在任何平台上使用它。您需要拥有Java虚拟机(
一、为什么需要分布式数据据库随着计算机和信息技术的迅猛发展,行业应用系统的规模迅速扩大,行业应用所产生的数据量呈爆炸式增长,动辄达到数百TB甚至数百PB的规模,已远远超出传统计算技术和信息系统的处理能力,集中式数据库面对大规模数据处理逐渐表现出其局限性。因此,人们希望寻找一种能快速处理数据和及时响应用户访问的方法,也希望对数据进行集中分析、管理和维护。这已经成为迫切需求。分布式数据库是在集中式数据
索引优化思路:索引的创建 如何查 如何分析 保证索引不失效(一)、SQL性能下降的原因:1、查询语句写的不好:2、索引失效:(单值索引,符合索引)3、关联查询太多join(设计缺陷或不得已的需求)4、服务器调优及各个参数设置(缓冲,线程数等)总结:对web开发而言:搞好1和2和3就好:(二)、人写SQL顺序:select from join on where group by having ord
转载 2024-06-14 22:03:40
33阅读
我是少侠露飞。学习塑造人生,技术扭转世界。引言我在之前一篇博客专门介绍了MySQL聚簇索引和非聚簇索引,附传送门:【享学MySQL】系列:MySQL索引的数据结构,索引品种及聚簇索引和非聚簇索引简略来说,就是咱们设计表的时候,根本都会人为设定一个主键,这就是聚簇索引(如果没有设定主键,MySQL会抉择非空不惟一的字段作为聚簇索引,如果仍然没有,则MySQL会抉择本人暗藏列row_id作为聚簇索引)
        在批量查询的时候,有时为了提高检索效率,会使用Unique配合IN查询。此时注意IN中不要写子查询,否则时间复杂度会大大增加。不过对于已经确定的检索范围,如果有Unique索引,效率还是可以的。        但有时候由于种
序言看了b站IT老齐的架构三百讲的其中一个短视频,有所体会并记录一下。视频中所讲的财经部门使用的UUID主键,在日终结算时出现磁盘的IO异常,导致应用出现高延迟。最后发现是UUID的问题,UUID作为主键在数据进行插入的时候对于系统的压力是非常大的。UUID(Universally Unique Identifier)介绍 UUID结构如上图所示,比如7bf13c38-00a1-484e
# JavaFX特效处理:不能做特效吗? JavaFX是Java平台的一个强大工具,用于构建桌面应用程序和富互联网应用程序。尽管JavaFX在图形用户界面(GUI)方面提供了丰富的功能,但很多开发者在创建特效时,却常常会感到局限。本文将探讨JavaFX是否真的不能进行特效开发,并通过一些示例代码来阐明特效实现的原理。 ## 特效定义 特效通常指的是动画、过渡和视觉增强效果,这些效果可以使应用
原创 9月前
35阅读
非空唯一索引与OGG抽取数据的关联 、 测试环境: 源端SUSE10 32bit oracle10.2.04 ogg 11.2.1.0.1 目标端SUSE11 64bit oracle11.2.02 ogg 11.2.1.0.1 测试环境ogg配置信息: 源端mgr、ext、pump GGSCI (testa) 13> view params mgr port 7809 GGSCI (t
https://blog.csdn.net/u014229282/article/details/81174202最近阅读了《redis设计与实现》,这是一本比较枯燥的书,毕竟涉及到redis底层数据结构。我写本文章的目的,主要围绕redis设计与实现这本书整体的一个印象,然后梳理了这本书整体思路: 为什么要选择Redis:介绍Redis的使用场景与使用Redis的原因;...
转载 2021-06-24 11:49:43
284阅读
在之前的文章《聊聊Mysql优化之索引优化》中,笔者简单介绍了Mysql索引优化的原理和一些使用场景,然而Mysql索引优化的内容还远远不止这些。在实际工作中,我们有时候会碰到明明已经建了索引,但是查询速度还是上不去的问题,这时候就要当心了,有可能你的查询语句根本就没使用到索引,因为Mysql索引在某些情况下会失效,今天我将为大家介绍下Mysql索引优化中
在分布式系统,有些数据会存在全局唯一的需求,生成全局唯一的分布式ID也很重要。分布式ID需要具备的特点全局唯一:最基本的要素趋势递增:分布式ID用来标识数据的唯一性,往往会被用作主键或者是唯一索引。常用的MySQL InnoDB,使用的索引往往是BTree索引,自增的数据在插入时会有较高的效率。信息安全:避免恶意用户直接根据自增ID获取数据信息几种分布式ID的实现方式UUIDUUID(Univer
  • 1
  • 2
  • 3
  • 4
  • 5