关于索引的奇怪问题,请指教,谢谢!
两张表:
df_cbk有字段id和dbbh,id是主键,dbbh是索引;
sg186_df_cbk有字段id和dbbh,id是主键;
df_cbk与sg186_df_cbk的关联字段是id,数据大概在10万条左右。
sg186_df_cbk是中间(临时用到),数据定写入sg186_df_cbk后,要转存到df_cbk,大家都知道update的速度是很慢的,所以的处理方法是删除df_cbk已存于sg186_df_cbk中的数据,再将sg186_df_cbk的数据全部写入df_cbk,这样速度应该更快点。
现在的问题是:
当我用id关联删除df_cbk时,花费了很久时间都没成功(十几分钟),结果发现没有用到任何索引,然后改用select count(*)也是如此,具体SQL如下:
一、id关联(十几分钟后仍没有结果)
SELECT count(*)
FROM df_cbk, sg186_df_cbk cbk
WHERE df_cbk.id = cbk.id
但后来我测试发现用dbbh关联反而速度很快(几秒),SQL如下:
二、dbbh关联(2秒钟不到就出结果)
SELECT count(*)
FROM df_cbk, sg186_df_cbk cbk
WHERE df_cbk.dbbh = cbk.dbcode
但dbbh不能作为可靠的关联条,因为dbbh不唯一。
请大家帮我解答这是为什么?怎么解决?