2014-02-27 55 views
1

我有一個查詢mysql的創建索引boolen或VARCHAR更好的性能和存儲

SELECT * FROM posts WHERE post_id=1 && image!=""... 

在我的索引

post_id, image 

post_id, text, image 

我的問題是

這是個好主意嗎?圖像到索引,(圖像將是varchar,1320-26541-335.jpg)

或者我應該創建另一個column(tinyint)和設置boolen來識別用戶是否有上傳圖像,基本上我只需要找出用戶有上傳圖像或不

(如果用戶沒有上傳圖片,他們場將是「」空)

回答

1

您可以創建1個字符的前綴索引,這將是一個指數的相同尺寸上TINYINT ,如果其值與image字符串不同步,則不必添加新列或擔心。

ALTER TABLE posts ADD KEY (post_id, image(1)); 
0

您可以設置圖像字段varchar並保存在其上傳的圖片(或圖像的只是名字)的路徑。如果沒有圖像上傳,讓它爲空!

這樣我不認爲你需要將它設置爲index,因爲它很少用於按名稱搜索圖像。