【发布时间】:2013-02-16 18:22:01
【问题描述】:
我在一个表中有一堆 BLOB 类型的列。这些列中包含的数据使用 MySQL 的 AES_ENCRYPT() 函数进行加密。其中一些字段正在我正在构建的应用程序的搜索部分中使用。在经常访问的列上放置索引是否值得?我不确定它们是 BLOB 的事实或数据本身已加密的事实是否会使索引无用。
编辑:以下是有关我的具体案例的更多详细信息。有一个大约 10 列左右的表,每个 BLOB。插入此表的每条记录都将使用 AES_ENCRYPT() 函数进行加密。在我的应用程序的搜索部分,用户将能够输入他们的查询。我接受他们的查询并像 SELECT AES_DECRYPT(fname MYSTATICKEY) AS fname FROM some_table 这样解密它,以便我可以使用 LIKE 子句执行搜索。我很好奇的是索引是否会索引加密数据而不是解密返回的实际数据。我猜如果索引仅应用于加密的二进制字符串,那么它根本不会帮助性能。我错了吗?
【问题讨论】:
-
您只会将它们索引到一定长度(在 SQL 中指定)。并且比较必须在这个长度内。海事组织
-
你能解释一下你的用例吗?我有一些想法,但这取决于您的搜索方式。
-
当然,我已经添加了更多细节
标签: mysql encryption indexing blob aes