【发布时间】:2016-04-11 11:38:56
【问题描述】:
我有一个包含大约一百万个条目的员工的 sqlite 数据库。
company:
emp_id(primary) | first_name | last_name | company_name | job_title
数据库仅包含 10 个不同的公司名称(即假设每个公司有大约 10 万名员工) 我在公司名称上创建了一个索引:
CREATE INDEX cmp_name ON company(company_name)
但我在执行查询时没有获得任何速度:
带索引:
select * from company INDEXED BY cmp_name where company_name = 'XYZ corp';
Time: 88.45 sec
没有索引:
select * from company where company_name = 'XYZ corp';
Time: 89.12 sec
我做错了什么?
【问题讨论】:
-
您仍在选择 100.000 行,索引不会神奇地使该部分更快。你觉得
select count(*)有什么不同吗? -
@Thilo 如何修改我的索引以提高速度?
-
所以你为一个拥有 100 万员工的组织工作,但你被困在使用 sqlite 作为关系数据库?不是 oracle、postgresql 或 sql server?
-
实际场景不同。我以员工为例。
标签: sql sqlite indexing query-optimization