数据库自增ID用完了会怎样?

时间: 2019-12-07阅读: 1151标签: 数据库

起步

对DBA来说这应该是送分题吧。而我是突如其来的想法想测试下的。正常来说程序员是不会关心自增ID用完的情况的。

以 Mysql 为例,它支持的最大的整型是 unsigned bigint,上限是 2 的 64 次次方。假设每秒记录100万条数据的增长,用完自增ID要58万年以后了。


自增ID用完了会怎样,什么报错

那要是真的58万年以后了呢。就是要探究下用光了会怎样。在我的 Mysql 5.7 它的报错是:

SQL Error (167): Out of range value for column 'id'.

也有人在其他版本测出来的报错是:

Duplicate entry '*****' for key 'PRIMARY'

可以看出,不同的数据库底层实现不一样,不同版本也有差异。只能知道会报错,具体报错信息是什么不好说,可能是数据越界,也可能是主键冲突。


补充

另外,另一个让程序员不关心自增ID用完的原因是。MySQL单机单表的处理能力是千万级别。当单表数据达到1千万时,MySQL性能就会开始下降,需要着手优化,这里的瓶颈主要是查询耗时。

我们可以通过分区再撑一段时间,当数据量到10亿时,基本到了MySQL的极限,不分表分库的话,业务难以持续。如果分表分库的话那么自增ID就很难保证唯一性,这时候就得弃用自增ID,采用其他算法(如uuid)。

总的来说,从业务的角度来讲自增ID不可能用完,单表也支撑不了那么大的数据量。不用担心自增ID用完的情况。

原文 http://www.hongweipeng.com/index.php/archives/1880/
站长推荐

1.阿里云: 本站目前使用的是阿里云主机,安全/可靠/稳定。点击领取2000元代金券、了解最新阿里云产品的各种优惠活动点击进入

2.腾讯云: 提供云服务器、云数据库、云存储、视频与CDN、域名等服务。腾讯云各类产品的最新活动,优惠券领取点击进入

3.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/6757

IndexedDB:浏览器里的本地数据库

在现代浏览器的本地存储方案中,indexedDB 是一项重要的能力组成, 它是可以在浏览器端使用的本地数据库,可以存储大量数据,提供接口来查询,还可以建立索引,这些都是其他存储方案 Cookie 或者 LocalStorage 无法提供的能力

nodejs怎么和数据库连接?

通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL ,作为应用最为广泛的开源数据库则成为我们的首选,下面本篇文章就来给大家介绍下如何通过NodeJS来操作 MySQL 数据库,希望对大家有所帮助。

数据库的常用sql操作

数据库操作,不管是服务端、前端、移动端,都或多或少的会涉及到数据的存储、查询、修改。所以作为一名开发者,数据库操作也是开发必备的一项技能。本文是对数据库中经常用到的一些写法与及函数的归纳总结

浏览器数据库 indexedDB

indexedDB用于在浏览器端存储大量的结构化数据。对比于其他的浏览器存储技术(cookie,localStorage),indexedDB具有以下优点:另外,indexedDB还具备以下特点:

MongoDB的特性、使用原理

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 具有高性能、易部署、易使用,存储数据非常方便等特点

node如何连接数据库?

node连接数据库的方法:使用命令npm install mysql --save安装mysql的软件包,在项目文档中使用client.connect()即可连接数据库。下载MySQL :MySQL Downloads,并进行安装。安装完,会引导你对数据库进行配置,设置root密码以及创建普通用户以及密码

使用 TypeScript 访问 MySQL 数据库

TypeScript 已经成为一个强大的 Web 应用程序开发环境,在与标准 JavaScript 保持一致的同时,提供了显著的改进。在本文中,我们将深入探讨使用 TypeScript 相关的细节

B树和哈希索引的比较

了解B树和哈希数据结构有助于预测查询在这些使用不同索引数据结构的存储引擎上的执行情况,特别是对于MEMORY存储引擎,它是允许您选择B树或哈希作为索引的存储引擎。

数据库的选择:数据库种类那么多,该如何选择?

技术真的是日新月异,Web 网站已经脱离之前的静态网站的体系,转而使用动态语言搭建的动态网站。这也衍生出一个问题:该如何存储数据了?数据库就应运而生,它的作用是提供存储数据的容器。方便 web 网站进行存储、查询、更新等。

MyISAM和InnoDB的比较

MyISAM:不支持事务,而且也不支持外键,但是每次查询都是原子的,支持表级锁,即每次操作是对整个表加锁;InnoDb:支持ACID的事务,支持事务的四种隔离级别;

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!

文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全运营推广