2013-04-03 95 views
-3

這兩個查詢之間是否存在性能差異?通配符搜索中的Mysql性能

1)從表中選擇*; 2)從表中選擇*,其中'%';

這兩個查詢都會返回相同的結果集。

+0

顯然簡單地「select * from table」比其他的更快 –

回答

1

如果都返回相同的結果,那麼LIKE查詢幾乎肯定是低效率的,因爲它從數據庫檢查LIKE條款得到相同的結果,即使它並不做任何事情。

也就是說,你應該自己測試一下,看看它是否有所作爲。很難想象這兩種情況都是有效的查詢。

+0

謝謝。實際上,在我的代碼中,我想爲查詢添加一個可選過濾器,當不存在時返回整個結果集。所以如果沒有提供過濾器,它會過濾'%',否則它會過濾所提供的值。動態創建查詢不是一個選項。因此,我想通過實施這種方式來確保我不會影響性能。 – V123456

+0

@ V123456在這種情況下,我建議用大量的數據(類似於你希望放在你的表中的數據)進行嘗試,看看性能是否可以接受。很難給出一般的建議,因爲它取決於你的桌子和你的表現要求。 –

+0

哦,好的。請嘗試這樣做。謝謝 – V123456