我有数据库 .db文件并且要访问它我正在使用 SQLite。
数据库的文件大小约为 100 GB ,并且有超过 300个表。
我的要求是我需要准备不同的查询来检查交叉表记录。
使用主键和外键连接表。
更快地查找查询输出的最佳方法是什么?
在阅读了一些文章之后我才知道我需要运行
还有什么我可以做的吗?
答案 0 :(得分:3)
当数据不适合任何缓存时,查询的执行时间由从磁盘读取所有数据所需的时间决定。
索引有助于减少需要读取的数据量(索引中的二进制搜索只需读取少量条目,而扫描表必须读取所有行)。
除非您重写查询以返回更少的数据,或者不执行不需要的查找,否则没有其他方法可以减少数据量。 这总是取决于实际查询。
答案 1 :(得分:0)
就像田云玲写道,你的问题太宽泛了。您需要分析您运行的查询,以确定如何最佳地优化数据库和索引。如果您需要以多种不同的方式读取数据,这不是一项简单的任务。例如,请记住,添加索引总是需要权衡。您将更快地读取数据,但更新速度会变慢。尝试从搜索本网站和网站开始学习教程等,为您提供一个起点。然后,如果你有更具体的问题回来,请在这里问他们。
另外,正如天云玲等人暗示的那样,SQLite并不适合这么庞大的数据库。我建议你切换到另一个数据库管理器。
从SQLite网页(我的亮点):
SQLite的建议用途:
应用程序文件格式。而不是使用fopen()将XML,JSON,CSV或某些专有格式写入您使用的磁盘文件中 应用程序,使用SQLite数据库。你将避免写和 对解析器进行故障排除,您的数据将更容易访问 跨平台,您的更新将是交易性的。 (更多...)
小工具数据库。 SQLite是手机,PDA,MP3播放器,机顶盒等数据库引擎的流行选择 电子产品。 SQLite的代码占用空间小,效率高 使用内存,磁盘空间和磁盘带宽,非常可靠,而且 不需要数据库管理员进行维护。
网站数据库。因为它不需要配置并将信息存储在普通磁盘文件中,所以SQLite是一种流行的选择 数据库支持中小型网站。
替代企业RDBMS。 SQLite通常用作企业RDBMS的代理,用于演示目的或用于演示目的 测试。 SQLite很快,不需要设置,这需要很多 测试中的麻烦,使演示变得简单易行 发射。强>
http://www.sqlite.org/features.html
进一步说:
SQLite的适当用途
SQLite不能与其他SQL数据库引擎直接比较 自SQLite尝试以来,Oracle,PostgreSQL,MySQL或SQL Server 解决一个非常不同的问题。
其他SQL数据库引擎努力实现共享存储库 企业数据。他们强调可扩展性,并发性, 集中和控制。
另一方面,SQLite努力为其提供本地数据存储 个人应用和设备。 SQLite强调经济, 效率,可靠性,独立性和简单性。SQLite不是为了与Oracle竞争而设计的。 SQLite旨在 与fopen()竞争。