SQLite大型数据库处理

时间:2014-09-05 12:09:55

标签: sql database sqlite

我有数据库 .db文件并且要访问它我正在使用 SQLite。

数据库的文件大小约为 100 GB ,并且有超过 300个表

我的要求是我需要准备不同的查询来检查交叉表记录。

使用主键和外键连接表。

更快地查找查询输出的最佳方法是什么?

在阅读了一些文章之后我才知道我需要运行

  • 分析命令
  • 并为需要的列生成 INDEXING

还有什么我可以做的吗?

2 个答案:

答案 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()竞争。

http://www.sqlite.org/whentouse.html