我實際上有一個30列的表。有一天這張桌子可以獲得3000個新紀錄!mysql優化數據內容:多列或簡單列哈希數據
列DATAS樣子:
IMG Name Phone etc..
http://www.site.com/images/image.jpg John Smith 123456789 etc..
http://www.site.com/images/image.jpg Smith John 987654321 etc..
我正在尋找一種方式來優化表的大小,還可以把SQL查詢的響應時間。我想在做類似的:
Column1
http://www.site.com/images/image.jpg|John Smith|123456789|etc..
,然後通過PHP的我將每個值存儲到一個數組..
難道是更快?
編輯
所以採取結構的一個例子,比方說,我有兩個表:
package
package_content
下面是表package
的結構:
id | user_id | package_name | date
這裏是表package_content
的結構:
id | package_id | content_name | content_description | content_price | content_color | etc.. > 30columns
事情是爲每個包我可以得到16羅的內容。例如:
id | user_id | package_name | date
260 11 Package 260 2013-7-30 10:05:00
id | package_id | content_name | content_description | content_price | content_color | etc.. > 30columns
1 260 Content 1 Content 1 desc 58 white etc..
2 260 Content 2 Content 2 desc 75 black etc..
3 260 Content 3 Content 3 desc 32 blue etc..
etc...
然後用PHP我做出那樣的
select * from package
while not EOF {
show package name, date etc..
select * from package_content where package_content.package_id = package.id and package.id = package_id
while not EOF{
show package_content name, desc, price, color etc...
}
}
爲什麼你的表有30列?聽起來你可能可以使用[一些標準化](http://en.wikipedia.org/wiki/Database_normalization)。另外,請勿將所有內容放在桌子上的一列中。當你必須更新某人的電話號碼時會發生什麼?首先,您必須將數據庫中的所有行加載到PHP中,然後必須遍歷所有對象,嘗試查找需要更新的特定記錄,然後重新加載。 vs'UPDATE table SET phone = {new phone#} WHERE phone = {old phone#}' – bhamby