我想通过让我们的数据库中的资源保留散列(md5)值然后使用
找到它来混淆我的客户端中的ID。 select * from resources where md5(_id) = "3c164361es869624aa2c16cdd034abaa";
但我不了解mysql的内部工作原理,这似乎对我来说可能会阻碍性能。
答案 0 :(得分:0)
由于_id是常量并且不会改变,因此每次重新计算其md5都会浪费CPU时间和时间。记忆,此外,随着桌子变大,你会看到延迟增加。
你最好为你的_id列的md5_id添加一个额外的列,每当你插入一个新行时只计算它的md5并将其保存在新的md5_id列中,这样你只需要执行md5一次而不是每次查询
您的新查询应该是
select * from resources where md5_id = "3c164361es869624aa2c16cdd034abaa";