2015-11-04 662 views
-1

我需要存儲:PHP數組轉爲二進制數據?

array(1,2,3,4,5); 

到一個MySQL的blob。

如何將此數組轉換爲二進制數據?

+0

目的是什麼? –

+1

你的問題顯示一點努力。 – dan08

+0

@ dan08如果你檢查修訂版本,你會發現他的問題不是如何存儲blob文件,而是爲什麼/如何存儲更大量的信息...... – Bonatti

回答

2

這主要取決於您如何使用這些信息。 ID通常用於識別資源,因此必須是唯一的,而不是空的和可索引的。

由那些標準不使用作爲blob。

主要是因爲按內容搜索比本地變量慢。此外,SQL數據庫對錶的內容進行排序以確保更快的查詢。

如果您需要的僅僅是存儲信息,然後使用另一個ID來標識此資源(並且它們可以輕鬆地解析爲字符串/數字,那麼不要使用blob)。二進制文件通常每個字符使用8個字節。一個數字可以使用較少的總內存來包含相同的信息。例如,1902334123(隨機鍵盤粉碎)在硬盤中使用10 * 8 = 80個字節,而一個32位有符號整數可以容納它。

最後,如果你需要的就是存儲一些數據單位是什麼,什麼是有順序的varchar您的問題將被解讀爲字符串,因爲它可以解決你的問題

+0

你提出了一些有關內存的優點我沒有考慮。我並不特別將json_encoding存儲起來,因爲它看起來很sl but,但在內存消耗方面似乎是正確的。 –

+0

不僅內存消耗(因爲在存儲VARCHAR時,使用不當的編碼可能會使用該值或更多),但是會丟失本地映射索引和算法,允許使用大量可能的單元對大量查詢進行排序並儘可能少地提供響應。想象一下,10萬個按字母排序的句子......如果你想「查詢*以x開始」,並且在0到500行以v開頭,你甚至不需要看它們......但是如果你有文件,你需要打開一個閱讀每一個 – Bonatti

0

可以轉換成JSON並存儲到數據庫:

json_encode($array); 

,當你從數據庫返回:倒投票

json_decode($array); 
相關問題