MySql 性能问题:MD5(value)

Pen*_*e83 3 mysql md5

出于安全目的,我以这种方式进行了一些查询:

SELECT avatar_data FROM users WHERE MD5(ID) ='md5value'
Run Code Online (Sandbox Code Playgroud)

所以,例如我有这个条目:

-TABLE.users-
ID | avatar_data
39 | some-data
Run Code Online (Sandbox Code Playgroud)

我做这个查询:

SELECT avatar_data FROM users WHERE MD5(ID) ='d67d8ab4f4c10bf22aa353e27879133c'
Run Code Online (Sandbox Code Playgroud)

'd67d8ab4f4c10bf22aa353e27879133c''39'MD5 过滤后的值。

我有一个非常大的数据库,里面有很多条目。我想知道这种方法是否会影响数据库性能?

Jon*_*han 5

因为您在要搜索的列上使用函数( MD5(ID)= ),所以 MySQL 必须进行全表扫描。

虽然我不确定您进行此类搜索的原因,但为了加快速度,我建议您添加另一列包含已处理的 ID 数据并将其编入索引。

所以你应该这样做:

选择 * 从用户那里 MD5_ID = 'd67d8ab4f4c10bf22aa353e27879133c'