抓取 MySQL Table 的 auto_increment 最大值

MySQL 使用 InnoDB 要做 SELECT COUNT(*) 會非常慢, 若是此 Table 符合下述狀況

  1. 很少刪除 (或知道大概會刪多少資料)
  2. 只需知道大概筆數
  3. 有設定 auto_increment

就可以考慮直接抓取 auto_increment 的值來當參考.

抓取 MySQL Table auto_increment 的最大值

直接由 information_schema 找 MySQL Table auto_increment 的最大值, 有下述兩種情況:

  1. 此 Table name 於整個 MySQL DB 中是唯一的:
    • SELECT TABLE_ROWS FROM information_schema.tables WHERE table_name='YOUR_TABLE_NAME';
  2. 此 Table name 於整個 MySQL DB 中有多個, 需要指定 DB Name:
    1. SELECT TABLE_ROWS FROM information_schema.tables WHERE table_name='YOUR_TABLE_NAME' AND table_schema = 'YOUR_DB_NAME';
    2. 或下述:
      1. use YOUR_DB_NAME; // 抓取自己現在的 Database name 可用: SELECT DATABASE();
      2. SELECT TABLE_ROWS FROM information_schema.tables WHERE table_name='YOUR_TABLE_NAME' AND table_schema = DATABASE();

相關網頁


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix 並標籤為 , 。將永久鏈結加入書籤。

發表迴響