我想从java中的数据库中获取特定值。我在预准备语句中使用了以下命令:
Select Pname from table where pid=458;
该表包含大约50,000行并且需要更多时间来获取,请帮助我更快地获取数据。
我使用了索引,然后我也绑定了变量,但它只减少了几秒的执行时间,我需要更高效。有没有办法更快地检索数据?
答案 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)
在Java中使用预准备语句而不是语句,它将使用绑定变量。 pstatement = conn.prepareStatement("从表格中选择Pname,其中pid =?");
这确保了SQl是预编译的,因此运行得更快。
但是,您可能通过索引获得比绑定变量更多的性能提升。