我已经使用 ADODB 测试了 Microsoft Access 和 Microsoft SQL Compact。
我有一个表 tblCustomer 用于存储客户信息
tblCustomer structure
--------------------
ID Name Email Something...
1 ABC ABC@ABC.com Something....
还有一个 tblTag 用于将客户分类为多种类型。例如富客户:标签 id = 1 ,债务客户:标签 id = 2 。每个客户可以有一个或两个标签。
tblTag structure
--------------------
ID TagID CustomerID
1 1 1
2 2 1
然后我已经为这些表添加了列 ID、TagID、CustomerID 的索引。
但是,当我使用此查询来获取所有富有的客户时。查询花费了我 8000 毫秒,在 tblCustomer 中总共有 170.000 条记录。
Select * from tblCustomer INNER JOIN tblTag on
tblTag.CustomerID=tblCustomer.ID where tblTag.TagID=1
如果我只运行Select * from tblCustomer
,它只需要我 3000 毫秒。当我得到所有桌子时,它甚至更快。内部连接没有按我的预期运行。当客户可以增长到 1.000.000 条记录时,8000 毫秒对我来说太慢了,而且我不希望每次运行此查询时我的程序都会眩晕一分钟。那么创建表格标签时我可能错了吗?我应该将标签作为 Rich (bit) 或 Debt (bit) 之类的列带入 tblCustomer 吗?