我在一个表中有一堆 BLOB 类型的列。这些列中包含的数据使用 MySQL 的 AES_ENCRYPT() 函数进行加密。其中一些字段正在我正在构建的应用程序的搜索部分中使用。在经常访问的列上放置索引是否值得?我不确定它们是 BLOB 的事实或数据本身已加密的事实是否会使索引无用。
编辑:这里有一些关于我的具体案例的更多细节。有一个大约 10 列左右的表,每个 BLOB。插入此表的每条记录都将使用 AES_ENCRYPT() 函数进行加密。在我的应用程序的搜索部分,用户将能够输入他们的查询。我接受他们的查询并像这样解密它,SELECT AES_DECRYPT(fname MYSTATICKEY) AS fname FROM some_table
以便我可以使用 LIKE 子句执行搜索。我很好奇的是索引是否会索引加密数据而不是解密返回的实际数据。我猜如果索引仅应用于加密的二进制字符串,那么它根本不会帮助性能。我错了吗?