2016-12-13 18 views
-2

PHP可以使用mysqli從MySQL數據庫中獲取的最大列數是多少?PHP可以從MySQL獲取的最大列數?

我明白,在典型用法中,您絕對不應該遇到此限制。

但是,這個數字可能應該記錄在某個地方。

回答

-1

這至少,因此它不太可能,你會以這種方式在任何正常情況下的限制。你可能會首先遇到其他限制。


我設置一個內置的時間越來越長查詢,像這樣的測試:

SELECT "a","a","a","a","a","a" ... 

我趕緊跑出去的內存。

我增加了memory_limit設置爲2048M,併成功獲取了400萬列。

當我嘗試500萬時,出現此錯誤:Got a packet bigger than 'max_allowed_packet' bytes. max_allowed_pa​​cket設置對您可以發送的查詢設置大小限制。

因此,即使MySQL表格顯然只限於4096列,您的查詢不是。

+1

好*個體*表僅限於4096列,但是這沒什麼好說的連接和計算列的結果。也就是說,PHP的內部限制可能是mysqlnd中任何整數跟蹤列數的最大值,而mysql的協議限制可能更復雜,因爲它似乎至少受到max_allowed_pa​​cket設置的限制。 *如果您在結果集中合法需要數百萬列,我會冒昧地說,您還有其他問題需要首先解決。 – Sammitch

+0

身份證這真的是一個列或只是記憶的措施? – 2016-12-14 20:46:25

+0

@Dagon真的只是記憶。我不知道列數是否有限制。 – Liam

3

如果你問這個問題你做錯了什麼。

對於三立設計的數據庫這樣的問題不應該永遠出現

+0

我同意沒有合理設計的數據庫應該會遇到這個限制。而我沒有這樣的數據庫。即使如此,問這是不是一個公平的問題?只有當我們知道這個限制很高時,我們才知道它永遠不會影響我們。 – Liam