出于安全目的,我以这种方式进行一些查询:
SELECT avatar_data FROM users WHERE MD5(ID) ='md5value'
所以,例如我有这个条目:
-TABLE.users-
ID | avatar_data
39 | some-data
我做这个查询:
SELECT avatar_data FROM users WHERE MD5(ID) ='d67d8ab4f4c10bf22aa353e27879133c'
'd67d8ab4f4c10bf22aa353e27879133c'
是MD5过滤后的'39'
值。
我有一个非常大的数据库,里面有很多条目。我想知道这种方法是否会损害数据库性能?
最佳答案
因为您在要搜索的列上使用函数 ( MD5(ID)= ),MySQL 将不得不进行全表扫描。
虽然我不确定您进行这样的搜索的原因,但为了加快速度,我建议您添加另一列包含已处理的 ID 数据并为其编制索引。
所以你应该这样做:
SELECT * FROM user WHERE MD5_ID = 'd67d8ab4f4c10bf22aa353e27879133c'
关于MySql性能问题: MD5(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1919486/