运维检查:mysql表自增id是否快要用完

数据库表中最大自增ID用完会报错。判断是否接近或达到自增ID类型的最大值:‌
对于MySQL中的自增ID,‌如果使用的是int类型,‌其无符号(‌unsigned)‌的最大值可以达到2^32 - 1,‌即4294967295。‌如果使用的是有符号的bigint类型 2^63 - 1,无符号的 2^64 - 1。如果查询到的最大ID值接近或达到这个数值,‌那么自增ID可能即将用完或已经用完。‌

<?php// 数据库配置
$host = 'localhost';
$db = 'your_database';
$user = 'your_username';
$pass = 'your_password';try {// 创建PDO实例$pdo = new PDO("mysql:host={$host};dbname={$db};charset=utf8mb4", $user, $pass);$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);// 获取所有表名$stmt = $pdo->query('SHOW TABLES');$tables = [];while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {$tables[] = array_shift($row); // 将表名提取出来}foreach ($tables as $table) {try {// 查询表的自增字段状态$stmt = $pdo->prepare('SHOW TABLE STATUS LIKE :table');$stmt->bindParam(':table', $table);$stmt->execute();$tableStatus = $stmt->fetch(PDO::FETCH_ASSOC);if (null !== $tableStatus['Auto_increment']) {// 检查自增ID是否接近最大值, 假设使用的是BIGINT类型$maxId = getTableAutoIncrementMaxId($pdo, $table);// 检查自增ID是否接近最大值if (($maxId - $tableStatus['Auto_increment']) < 10000) {echo "警告:表 {$table} 的自增ID即将用尽,当前ID: {$tableStatus['Auto_increment']}, 最大ID: {$maxId}\n";} else {echo "表 {$table} 的自增ID正常,当前ID: {$tableStatus['Auto_increment']}\n";}} else {echo "----表 {$table} 没有自增字段\n";}} catch (PDOException $e) {echo "表 {$table} 的查询出现错误: ".$e->getMessage()."\n";}}
} catch (PDOException $e) {echo '数据库连接失败: '.$e->getMessage();
}/*** 判断表的子序自增ID是否存在,跟根据自增类型获取ID最大值** @param $pdo* @param $table** @return float|int|object*/
function getTableAutoIncrementMaxId($pdo, $table)
{$powNum = 31;// 准备SQL查询语句$stmt = $pdo->prepare("SHOW COLUMNS FROM {$table} WHERE Extra='auto_increment'");// 执行查询$stmt->execute();// 查找自增字段$column = $stmt->fetch(PDO::FETCH_ASSOC);if (!empty($column)) {// 检查bigint类型if (false !== strpos($column['Type'], 'bigint')) {$powNum = 63;}// 无符号(‌unsigned)‌if (false !== strpos($column['Type'], 'unsigned')) {++$powNum;}}return pow(2, $powNum) - 1;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/45741.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python编程:从入门到实践(第三版) 笔记

文章目录 资源网站:https://www.ituring.com.cn/book/3038配置VSCode推荐资源网站推荐资源网址 资源网站:https://www.ituring.com.cn/book/3038 配置VSCode 推荐资源网站 推荐资源网址 英文版主页&#xff1a; https://ehmatthes.github.io/pcc_3e 中文版主页&#xff1a; h…

上市公司企业共同机构所有权数据、机构交叉持股数据(2005-2023)

数据来源&#xff1a;基础数据来源于上市公司企业年报 时间跨度&#xff1a;2005-2023年 数据范围&#xff1a;企业层面 数据指标&#xff1a; 参考《中国工业经济》杜勇&#xff08;2021&#xff09;老师的做法&#xff0c;从 3 个维度构造指标反映上市公司共同机构所有权&…

Vue和Element UI 路由跳转

在Vue.js中&#xff0c;使用Vue Router可以方便地实现页面之间的路由跳转。Element UI是一个基于Vue 2.0的桌面端组件库&#xff0c;它本身并不直接提供路由跳转的功能&#xff0c;但你可以在使用Element UI的Vue项目中结合Vue Router来实现这一功能。 以下是一个基于Vue和Ele…

Proxyman for Mac v5.6.1 抓包调试工具

Mac分享吧 文章目录 效果一、下载软件二、功能三、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 四、运行测试1、打开软件 安装完成&#xff01;&#xff01;&#xff01; 效果 一…

【华为OD笔试】2024D卷命题规律解读【分析300+场OD笔试考点总结】

可上 欧弟OJ系统 练习华子OD、大厂真题 绿色聊天软件戳 od1441了解算法冲刺训练&#xff08;备注【CSDN】否则不通过&#xff09; 文章目录 相关推荐阅读华为OD笔试2024D卷命题规律解读华为OD算法/大厂面试高频题算法练习冲刺训练 相关推荐阅读 【华为OD笔试】2024D卷机考套题…

C# Opencv实现本地以图搜图

地址&#xff1a;冯腾飞/本地以图搜图

Java面试八股之Redis哨兵机制

Redis哨兵机制 Redis Sentinel&#xff08;哨兵&#xff09;模式是一种高可用解决方案&#xff0c;用于监控和自动故障转移Redis主从集群。以下是对哨兵模式详细过程的描述&#xff1a; 1. 初始化与配置 部署哨兵节点&#xff1a;在不同的服务器上部署一个或多个Redis Sentin…

《算法笔记》总结No.7——二分(多例题详解版)

一.二分查找 目前有一个有序数列&#xff0c;举个例子&#xff0c;假设是1~1000&#xff0c;让我们去查找931这个数字&#xff0c;浅显且暴力的做法就是直接从头到尾遍历一遍&#xff0c;直到找到931为止。当n非常大&#xff0c;比如达到100w时&#xff0c;这是一个非常大的量级…

Linux 线程初步解析

1.线程概念 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一个进程内部的控制序列。在linux中&#xff0c;由于线程和进程都具有id,都需要调度等等相似性&#xff0c;因此都可以用PCB来描述和控制,线程含有PCB&am…

美联储降息应该更早?高盛:有充分理由7月降息,而非9月

KlipC报道&#xff1a;高盛首席经济学家哈祖斯Jan Hatzius表示&#xff0c;美联储“有充分理由”在7月会议上降息&#xff0c;而非等到9月。 在最新发布的报告中&#xff0c;他表明通胀已经取得了足够的进展&#xff0c;回到了美联储2%的长期目标附近&#xff0c;这将使美联储…

[C++ 入门基础 - 命名空间]

在C中&#xff0c;命名空间&#xff08;Namespace&#xff09;是一种用来组织代码并避免命名冲突的机制。命名空间可以包含变量、函数、类等C中的所有实体&#xff0c;使得这些实体的名称在命名空间内部有效&#xff0c;避免了与其他命名空间或全局作用域中相同名称的冲突。 文…

实现将Nginx的每个网站配置单独的访问日志

一、问题描述 Nginx默认的访问日志是不会区分哪个网站有哪些日志的,全部糅杂在一起;如果需要哪个网站有哪些访问日志记录,还需要将访问日志下载下来后筛选,比较麻烦;希望将每个网站对应的日志能够单独记录到对应的日志文件里面,方便排查和管理。 # 进入Nginx默认的日志文…

为什么Vim是程序员最喜欢的编辑器之一

简介 Vim&#xff0c;全称Vi IMproved&#xff0c;是一种高度可定制、功能强大的文本编辑器。自其诞生以来&#xff0c;它以高效、快速和灵活的特点深受程序员喜爱。无论是处理简单的文本文件还是复杂的代码项目&#xff0c;Vim都能提供卓越的编辑体验。许多资深程序员甚至称其…

c++ primer plus 第16章string 类和标准模板库,6.1.5字符串种类

c primer plus 第16章string 类和标准模板库,6.1.5字符串种类 c primer plus 第16章string 类和标准模板库,6.1.5字符串种类 文章目录 c primer plus 第16章string 类和标准模板库,6.1.5字符串种类6.1.5字符串种类 6.1.5字符串种类 本节将 string 类看作是基于 char 类型的。…

web服务器经过代理后的绝对路径问题,以及 dirname(__FILE__)和__DIR__

web服务器经过代理后的绝对路径问题&#xff0c;以及 dirname&#xff08;__FILE__&#xff09;和__DIR__ 问题描述情况解析资源路径分析访问过程分析 dirname(\_\_FILE\_\_) 与 \_\_DIR\_\_ 同步发布在个人笔记web服务器经过代理后的绝对路径问题&#xff0c;以及 dirname(__F…

Nest.js 实战 (一):使用过滤器优雅地统一处理响应体

前言 在我们实际的业务开发中&#xff0c;我们可以看到后端接口返回格式都有一定的要求&#xff0c;假如我们统一规定接口的统一返回格式为&#xff1a; {data: any; // 业务数据code: number; // 状态码msg: string; // 响应信息timestamp: number; // 时间戳 }那么在 Nest.…

【智能算法改进】改进的麻雀搜索算法及其求解旅行商问题

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】麻雀搜索算法&#xff08;SSA&#xff09;原理及实现 2.改进点 改进发现者更新位置 为了使 SSA 算法能够避开向原点收敛的弊端, 将算法向最优位置跳跃的操作转换为向最优位置的移动: X i ,…

自己动手写一个滑动验证码组件(后端为Spring Boot项目)

近期参加的项目&#xff0c;主管丢给我一个任务&#xff0c;说要支持滑动验证码。我身为50岁的软件攻城师&#xff0c;当时正背着双手&#xff0c;好像一个受训的保安似的&#xff0c;中规中矩地参加每日站会&#xff0c;心想滑动验证码在今时今日已经是标配了&#xff0c;司空…

一个篇文章告诉你一个APP前端搭建有多简单

用uni-app 1.新建uni-app项目 点击项目 2.创建 最后点击右下方创建 3.添加tarbar 首先你要创建几个页面这里比如说我有两个页面的tarbar首页(home)和我的(userIndex) 在pages目录下右键新建页面即可

从库存超卖问题分析锁和分布式锁的应用(二)

本文从一个经典的库存超卖问题分析说明常见锁的应用&#xff0c;假设库存资源存储在Redis里面。 假设我们的减库存代码如下&#xff1a; Autowired StringRedisTemplate redisTemplate;public void deduct(){String stock redisTemplate.opsForValue().get("stock"…