HTML Encoder

HTML Encoder

2011年11月27日 星期日

[MySQL]取得目前的auto_increment

我在資料表為id設定了Auto_increment 自動增號
那我要如何在php中取得這個值呢


我一開始上網查得到了這個答案:

$result = mysql_query(SELECT Auto_increment FROM information_schema.tables WHERE table_name='(資料表名稱)' AND table_schema = DATABASE(););
$row = mysql_fetch_array($result);
$nextId = $row['Auto_increment'];
mysql_free_result($result);

在本機跑是沒有問題,不過掛上網頁空間跑就有問題了
跑的非常慢而且常跑到超時
最後我的空間因為"mySQL負擔過重,連續使用執行時間超過10秒的Query"被停權兩次

最後再查才發現information_schema.tables會隨著資料庫、資料表增加而增大
在我本機只有我自己用的資料庫當然是沒什麼問題,可是網頁空間的mySQL伺服器是同時存有數千甚至數萬個使用者建立的資料庫、資料表
所以這個表格會變得非常巨大,那當然查詢起來就很慢又浩資源了
幸好有查到另一個方法,這個方法就不會有這問題了

$result = mysql_query("SHOW TABLE STATUS LIKE '(資料表名稱)'");
$row = mysql_fetch_array($result);
$nextId = $row['Auto_increment'];
mysql_free_result($result);

資料來源: http://stackoverflow.com/questions/933565/get-auto-increment-value-with-mysql-query

沒有留言:

張貼留言