2016-07-22 35 views
1

我想在java中從數據庫中獲取特定值。我在準備好的聲明中使用以下命令:如何從java數據庫中增加特定值的獲取時間?

Select Pname from table where pid=458; 

表包含約50,000行,並採取更多的時間來獲取,請幫助我更快地獲得數據。

我用索引,然後我也綁定變量,但它減少了執行時間只有幾秒鐘,我需要更高效。有什麼辦法更快地檢索數據?

+1

哪個數據庫正在使用 –

+0

我正在使用SQL服務器 – karthik

回答

4

爲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

+0

你能分享一下嗎? – karthik

+0

@pandian - 請參閱示例和參考。 –

+0

我用索引,然後我也綁定變量,但它減少了執行時間只有幾秒鐘,我需要更高效。有什麼辦法更快地檢索數據? – karthik

1
  1. 在表創建現場PID指數。
  2. 在查詢中使用綁定變量。

使用準備語句而不是Java語句,它將使用綁定變量。pstatement = conn.prepareStatement(「Select pname from table where pid =?」);

這確保了SQl是預編譯的,因此運行速度更快。

但是,您可能通過索引獲得比綁定變量更多的性能改進。

+0

請分享示例 – karthik

+0

我使用的是Oracle DB,但創建索引的常用語法是'CREATE INDEX index_name ON your_tbl(pid ASC)'您最好參考SQL Server文檔。索引創建後只需運行您的查詢,它應該更快地獲取數據。 – nilsman

+0

我用索引,然後我綁定變量,但它減少了執行時間只有幾秒鐘,我需要更高效。有什麼辦法更快地檢索數據? – karthik

相關問題