为什么不建议用字符串或者uuid做数据库主键
UUID
好处就是本地生成,不要基于数据库来了;不好之处就是,UUID 太长了、占用空间大,作为主键性能太差了;更重要的是,UUID 不具有有序性,会导致 B+ 树索引在写的时候有过多的随机写操作(连续的 ID 可以产生部分顺序写),还有,由于在写的时候不能产生有顺序的 append 操作,而需要进行 insert 操作,将会读取整个 B+ 树节点到内存,在插入这条记录后会将整个节点写回磁盘,这种操作在记录占用空间比较大的情况下,性能下降明显。
适合的场景:如果你是要随机生成个什么文件名、编号之类的,你可以用 UUID,但是常规业务不建议主键用 UUID 的。当然,万事无决定,毕竟还有分布式和雪花算法的概念
为什么不建议用字符串或者uuid做数据库主键相关推荐
- 使用UUID作为数据库主键产生的问题及解决方案
序言 看了b站IT老齐的架构三百讲的其中一个短视频,有所体会并记录一下.视频中所讲的财经部门使用的UUID主键,在日终结算时出现磁盘的IO异常,导致应用出现高延迟.最后发现是UUID的问题,UUID作 ...
- 使用uuid作为数据库主键,被技术总监怼了!
一.前言 在日常开发中,数据库中主键id的生成方案,主要有三种 数据库自增ID 采用随机数生成不重复的ID 采用jdk提供的uuid 对于这三种方案,我发现在数据量少的情况下,没有特别的差异,但是当单 ...
- 使用uuid作为数据库主键,被技术总监怼了一顿!
每天早上七点三十,准时推送干货 看完本文,你一定会有所收获 一.摘要 在日常开发中,数据库中主键id的生成方案,主要有三种 数据库自增ID 采用随机数生成不重复的ID 采用jdk提供的uuid 对于这 ...
- 数据库主键到底是用自增长(INT)好还是UUID好?
数据库主键到底是用自增长(INT)好还是UUID好? 使用自增长做主键的优点: 1.很小的数据存储空间 2.性能最好 3.容易记忆 使用自增长做主键的缺点: 1.如果存在大量的数据,可能会超出自增长的 ...
- 数据库主键一定要自增吗?有哪些场景不建议自增?
Hollis的新书限时折扣中,一本深入讲解Java基础的干货笔记! 我们平时建表的时候,一般会像下面这样. CREATE TABLE `user` (`id` int NOT NULL AUTO_IN ...
- 数据库主键采用整型还是字符串?
整型的好处:速度快,自增方便. 字符串的好处:自定义方便. 主键索引会先存入内存区,如果用字符串占用内存会比较大.建议采用整型.
- 为啥不能用uuid做MySQL的主键!?
作者:Yrion 地址:cnblogs.com/wyq178/p/12548864.html 前言 在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形 ...
- 5分绩点转4分_作为一名大学生,如何规划4年大学生活?学姐:建议从这5点做起...
导语:作为一名大学生,如何规划4年大学生活?学姐:建议从这5点做起 进入大学后,同学们会拥有更多可自由支配的时间.大学课余时间多,家长不在身边,老师又不管.同学们可以说是彻底自由了.但是世界上没有绝对 ...
- 【Python】在字符串的头尾做文本匹配
在字符串的头尾做文本匹配 Python为字符串对象提供了 str.startswith() 和 str.endswith() 两个方法来实现字符串的开头和结尾的文本匹配,返回值为布尔值. >&g ...
最新文章
- Java、Android静态代理与动态代理
- Spring OXM-XStream注解
- 嵌入式驱动开发应具备的三大基础
- usb连接不上 艾德克斯电源_艾德克斯双范围可编程直流电源IT6800A/B系列
- OS10.11安装Cocoapods并集成ReactiveCocoa
- Column count doesn't match value count at row 1 原因
- 深入分析之Cluster层
- 演义群侠传(五)【素材方式MC or SpriteSheet】
- JavaScript 之call , apply 和prototype 介绍
- java包资源_Java获取jar包以外资源的方法
- minst 手写数字识别实战
- 最新爱客影院自动采集源码v3.5.5
- php 读写局域网文件,PHP访问局域网共享文件
- AcWing 188 武士风度的牛 题解(BFS)
- 微信提示:绑定非国内手机号的账户将迁移至 Wechat,或者换绑手机号
- zookeeper启动报错:already running as process
- Android Camera HAL3 - 框架流程预览
- 【海大838】22年考研真题及解析
- JPA基础知识----JPA 基本注解,JPA API
- Prometheus(一)——概述、监控体系、生态组件、部署
热门文章
- 打听别人工资的7个话题,让你薪水更高
- Z-score(Z值)的意义--转载
- 密码 计算安全性 可证明安全性 无条件安全性
- python解析pcap提取{src ip,src port,protocol,dst ip, dst port}五元组,再提取网络流(包括前向流与后向流)
- linux下复制文件并重命名,Linux 批量复制并重命名 和 批量复制文件到多个文件夹...
- 《*** 法治思想学习纲要》学习辅导
- shell循环执行脚本
- 基于对接化合物库虚拟筛选(Virtual Screening)
- 联邦学习的威胁模型和攻防现状
- cccc-gplt 团体程序设计天梯赛JAVA题解