如何从java增加数据库中特定值的获取时间?

时间:2016-07-22 05:42:25

标签: java database performance time fetch

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

Select Pname from table where pid=458;

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

我使用了索引,然后我也绑定了变量,但它只减少了几秒的执行时间,我需要更高效。有没有办法更快地检索数据?

2 个答案:

答案 0 :(得分:4)

将数据库表索引为pid,它将使搜索更快。

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

SQL Server

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

答案 1 :(得分:1)

  1. 在表格中的字段pid上创建索引。
  2. 在查询中使用绑定变量。
  3. 在Java中使用预准备语句而不是语句,它将使用绑定变量。 pstatement = conn.prepareStatement("从表格中选择Pname,其中pid =?");

    这确保了SQl是预编译的,因此运行得更快。

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