2011-09-23 21 views
0

我在做一個數據庫類,我想有一個大樣本數據庫進行實驗。我在這裏定義的大部分是數據庫中有足夠的數據,所以如果我嘗試一個效率非常低的查詢,我可以根據執行所花費的時間來判斷。我爲此搜索了一下,沒有發現HSQLDB特定的任何內容,但也許我使用了錯誤的關鍵字。基本上我希望能夠找到已經設置好的東西,包括表,主鍵等等,以及所有這些,這樣我就可以在一個有點現實的數據庫上嘗試一些東西。對於HSQLDB我想這只是.script文件。無論如何,如果有人知道任何資源,我真的很感激它。HSQLDB的大樣本數據庫?

回答

1

您可以使用MySQL Sakila數據庫模式和數據(MySQL網站上的開源代碼),但需要修改模式定義。您可以刪除視圖和觸發器定義,這對於您的實驗不是必需的。例如:

CREATE TABLE country (
    country_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, 
    country VARCHAR(50) NOT NULL, 
    last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    PRIMARY KEY (country_id) 
)ENGINE=InnoDB DEFAULT CHARSET=utf8; 

修改:

CREATE TABLE country (
    country_id SMALLINT GENERATED BY DEFAULT AS IDENTITY, 
    country VARCHAR(50) NOT NULL, 
    last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (country_id) 
) 

一些MySQL的DDL語法在HSQLDB的MYS語法模式的支持,例如AUTO_INCREMENT被翻譯成身份,但有些則需要手動編輯。除了一些二進制字符串外,數據大部分是兼容的。

您需要使用報告查詢時間的工具訪問數據庫。 HSQLDB DatabaseManager在查詢輸出處於文本模式時執行此操作。

+0

謝謝,我會檢查一下!我希望懶惰,只是使用完全現成的東西,但這聽起來不錯。 – Maltiriel