運維檢查: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.pswp.cn/web/45741.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45741.shtml
英文地址,請注明出處:http://en.pswp.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"…