舷Kelvin 2023-02-07 22:49 采纳率: 61.5%
浏览 14
已结题

mysql物化表(临时表)时,如果是多列的表子查询,依据哪些数据来创建哈希索引?

mysql物化表(临时表)时,如果是多列的表子查询,依据哪些数据来创建哈希索引?

SELECT * FROM t1 WHERE (m1, n1) IN (SELECT m2, n2 FROM t2);

类似这样多列比较的表子查询,每行的哈希索引依据哪个值来创建?

个人推测,既然是仅用于这条语句的辅助用表,那就依照特定需要针对性的创建索引,也即m2和n2两列联合起来计算哈希值。而不是m2、n2分别各自,或者整行数据一起计算。

因为是学习中产生的疑问,但书上没有说得这么细,网上搜搜也没人提到这个,所以发个问题确认一下是不是与我推测的情形一致,如果推测不对也请告知,谢谢大家。

  • 写回答

1条回答 默认 最新

  • 2301_76426662 2023-02-07 22:58
    关注

    可以依据表中最常用的查询列来创建哈希索引。
    可以尝试以表中最多查询列值作为键值,将查询记录存储在哈希表中。哈希索引可以提供速度最快的访问速度,而哈希表将所有记录存储在同一结构中,以快速响应查询,但是它可能会因为索引越来越大而变得慢。
    例如,如果创建哈希索引时使用如下公式:

    hash_table[key] = record;

    其中,key 为要搜索的值,而 record 为查询结果。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月15日
  • 修改了问题 2月7日
  • 创建了问题 2月7日

悬赏问题

  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开