python - SQLite 索引行组?
问题描述
我有大量的城市、州对加载到 SQLite 表中。我将查询这座城市并了解该州。假设我想查找一个我知道位于德克萨斯州的特定城市。尽管有限制,以下查询大致为 O(n),对吧?
SELECT * FROM cities WHERE state_abbr=? LIMIT 1
是否有某种方法可以按状态对行进行分组或创建二级索引或其他方式,以便 SQLite 知道在哪里可以找到“TX”行并仅在其中搜索?我已经考虑为每个州创建单独的表——这是一个选项——但我希望我可以在这个单一的表中做一些事情来提高查询效率。
在我读过的教程中,创建复合索引后查询不会改变。SQLite 是否只是在同一查询中使用引擎盖下的索引?
解决方案
为什么不只是有一个复合索引?
create index cities_state_abbr_city on cities(state, city);
推荐阅读
- ruby - 如何按外键分组和求和?
- amazon-web-services - 使用模块时无法从 terraform.tfstate 读取
- vue.js - 如何修复我的 Vue 组件以正确显示我的 Vue-Chart.js 折线图?
- variables - Nifi:我可以为 Kerberos Principal 和 Kerberos Keytab 使用变量吗?
- linux - HAProxy tcp模式源客户端ip
- c# - C# - 为什么 BrowserMob.GetHar() 只返回 1 个条目?
- javascript - 如何将 Javascript 字典传递给 C# 字典值是对象的控制器
- python - 如何同时使用带有字典和数组的for循环
- c - printk 适用于某些功能,但不是全部
- python - 如何优化 Django 模板中的循环?