【问题标题】:Is the java code for querying an indexed database same as that for an Un-indexed database?查询索引数据库的java代码是否与未索引数据库的java代码相同?
【发布时间】:2015-07-23 18:22:38
【问题描述】:

我已经在我的 MS Access 数据库中索引了一些列,并且我正在使用 Java 来查询数据库。

在索引之前,我使用了这段代码:

ResultSet rs = statement.executeQuery("Select * from Employees where FirstName = Sarah");

索引数据库中的某些列后,我应该对代码进行任何更改。有没有这样的需要/可能:

statement.getIndexes();

我问这个是因为我的 MS Access 数据库有 300,000 多条记录。由于大小,获取记录太慢了。索引后,获取记录根本没有加快。我想我可能仍在访问该列的未索引版本。

(如果这很重要,我正在为 Android 应用编写代码)

【问题讨论】:

    标签: java android database ms-access indexing


    【解决方案1】:

    您的问题很可能是查询。你永远不应该使用表中的select *。始终指定您的列。看看here

    【讨论】:

    • 感谢您的建议。我只是发现问题不在于查询。这是需要时间来建立的连接。我的应用程序和数据库之间的第一次 ucanaccess 连接需要大量的堆内存,而移动设备通常没有这些内存。这就是为什么连接时间过长,当堆空间用完时应用程序崩溃的原因。
    【解决方案2】:

    没有。 SQL 命令告诉它返回某个结果,它如何找到该结果(使用索引等)是 db 的实现细节。现在你可能需要在数据库上做一些事情来让它实现索引。尽管您确实应该考虑迁移到真正的数据库,但 Access 并不适用于大量数据。

    【讨论】:

    • 感谢您的建议。我只是发现问题不在于查询。这是需要时间来建立的连接。我的应用程序和数据库之间的第一次 ucanaccess 连接需要大量的堆内存,而移动设备通常没有这些内存。这就是为什么连接时间过长,当堆空间用完时应用程序崩溃的原因。
    猜你喜欢
    • 2015-06-14
    • 2013-07-16
    • 2011-01-24
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 2017-10-01
    • 2019-01-01
    相关资源
    最近更新 更多