【问题标题】:How to increase the fetching time of a particular value from database from java?java - 如何增加从数据库中获取特定值的时间?
【发布时间】:2016-07-22 05:42:24
【问题描述】:

我想从 java 中的数据库中获取特定值。我在准备好的语句中使用了以下命令:

Select Pname from table where pid=458;

该表包含大约 50,000 行并且需要更多时间来获取,请帮助我更快地获取数据。

我使用了索引,然后我也绑定了变量,但它只减少了几秒钟的执行时间,我需要更有效率。有什么方法可以更快地检索数据???

【问题讨论】:

  • 你使用的是哪个数据库
  • 我正在使用 SQL 服务器

标签: java database performance time fetch


【解决方案1】:

为您的数据库表索引 pid,这将使搜索更快。

索引用于快速定位数据,而无需在每次访问数据库表时搜索数据库表中的每一行。可以使用数据库表的一列或多列创建索引,为快速随机查找和有效访问有序记录提供基础。

SQL 服务器

CREATE TABLE MyCustomers (CustID int, CompanyName nvarchar(50));

CREATE UNIQUE INDEX idxCustId ON MyCustomers (CustId);

参考文献

https://msdn.microsoft.com/en-us/library/ms188783.aspx

https://technet.microsoft.com/en-us/library/ms345331(v=sql.110).aspx

【讨论】:

  • 你能分享任何例子吗??
  • @pandian - 请参阅示例和参考资料。
  • 我使用了索引,然后我也绑定了变量,但它只减少了几秒钟的执行时间,我需要更高效。有什么方法可以更快地检索数据???
【解决方案2】:
  1. 在表中的字段 pid 上创建索引。
  2. 在查询中使用绑定变量。

使用准备好的语句代替 Java 中的语句,这将使用绑定变量。 pstatement = conn.prepareStatement("Select Pname from table where pid = ?");

这可确保 SQl 是预编译的,因此运行速度更快。

但是,与绑定变量相比,您可能会通过索引获得更多的性能提升。

【讨论】:

  • 请分享示例
  • 我使用的是 Oracle DB,但创建索引的常用语法是 CREATE INDEX index_name ON your_tbl ( pid ASC ) 您最好参考 SQL Server 文档。创建索引后,只需运行您的查询,它应该会更快地获取数据。
  • 我使用了索引,然后我也绑定了变量,但它只减少了几秒钟的执行时间,我需要更高效。有什么方法可以更快地检索数据???
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-21
  • 2020-07-01
  • 2020-01-29
相关资源
最近更新 更多