Mysql

MySQL:什麼是 AUTO_INCREMENT “可用空間”?

  • October 15, 2017

引用openark-kit。該軟體似乎無人維護(Google程式碼託管和 2013 年的最後一次送出)。

Oak-show-limits:顯示AUTO_INCREMENT“自由空間”。

這是什麼?沒有此工具如何查看AUTO_INCREMENT“可用空間”?

這只是 auto_increment 可以達到的最大 id。

您可以使用以下 SQL 進行相同操作:

SELECT 
   t.TABLE_SCHEMA,
   t.TABLE_NAME,
   `AUTO_INCREMENT` current_id, 
   if(m.max_id =-1,'18446744073709551615',m.max_id) max_id, 
   (m.max_id - `AUTO_INCREMENT`) free_id,
   (`AUTO_INCREMENT`/m.max_id*100) percent_used
FROM  
   INFORMATION_SCHEMA.TABLES t
   INNER JOIN 
   (
   SELECT 
       TABLE_NAME,
       TABLE_SCHEMA,
       CASE 
           WHEN COLUMN_TYPE LIKE "tinyint%unsigned"    THEN 255
           WHEN COLUMN_TYPE LIKE "tinyint%"    THEN 127
           WHEN COLUMN_TYPE LIKE "smallint%unsigned"   THEN 65535
           WHEN COLUMN_TYPE LIKE "smallint%"   THEN 32767
           WHEN COLUMN_TYPE LIKE "mediumint%unsigned"  THEN 16777215
           WHEN COLUMN_TYPE LIKE "mediumint%"  THEN 8388607
           WHEN COLUMN_TYPE LIKE "int%unsigned"    THEN 4294967295
           WHEN COLUMN_TYPE LIKE "int%"    THEN 2147483647
           WHEN COLUMN_TYPE LIKE "bigint%unsigned" THEN 18446744073709551615
           WHEN COLUMN_TYPE LIKE "bigint%" THEN 9223372036854775807
       END max_id
   FROM INFORMATION_SCHEMA.COLUMNS 
   WHERE extra like "%auto_increment%" 
   ) m
   on 
       t.TABLE_NAME = m.TABLE_NAME
       AND t.TABLE_SCHEMA = m.TABLE_SCHEMA
-- WHERE TABLE_SCHEMA = 'DatabaseName'
-- AND   TABLE_NAME   = 'TableName'; 

橡樹表演極限

NAME

橡樹顯示限制:顯示AUTO_INCREMENT“可用空間”

概要

在所有模式和所有表上顯示所有 AUTO_INCREMENT 列、目前 AUTO_INCREMENT 值和上限、使用率:

描述

Oak-show-limits 查找 AUTO_INCREMENT 列,並將目前值與列類型進行比較。它報告 AUTO_INCREMENT 值高於給定門檻值的那些列。此實用程序可用於診斷低估和高估的數據類型範圍。被低估的數據類型是 AUTO_INCRMENET 目前值接近上限的數據類型。高估數據類型是那些目前值與上限相差甚遠的數據類型。輸出以製表符分隔,其中每一行指定:

引用自:https://dba.stackexchange.com/questions/188511