我需要通过类似
之类的东西加入两个大表SELECT t1.x + t2.x FROM t1 JOIN t2 USING (some_unimportant_column)
并且由于两个表都很大并且some_unimportant_column
上没有索引,因此需要很长时间。我不想保留索引,因为它在更新期间花费了磁盘空间和时间;此外,有时我需要加入USING (another_unimportant_column)
。
虽然这个JOIN不足以证明索引的合理性,但是等待一个小时来进行极低效的计算并不是很少见。什么效果很好
但手动执行此操作非常繁琐,并且由于DDL命令而导致的提交非常糟糕。
我想知道为什么数据库无法解决这个问题?我正在使用mysql并且还想知道其他数据库引擎是否更聪明这个?
答案 0 :(得分:0)
您可以使用存储过程执行此操作。
存储过程将创建索引,运行sql然后删除索引。