0

我正在上一个数据库课程,我想有一个大型示例数据库来试验。我在这里对大的定义是数据库中有足够的数据,因此如果我尝试一个效率非常低的查询,我将能够通过执行所需的时间来判断。我对此进行了谷歌搜索,但没有找到任何特定于 HSQLDB 的内容,但也许我使用了错误的关键字。基本上我希望找到一些已经设置好的东西,包括表、主键等,并且规范化等等,所以我可以在一个有点现实的数据库上尝试一下。对于 HSQLDB,我猜这只是 .script 文件。无论如何,如果有人知道这方面的任何资源,我将不胜感激。

4

1 回答 1

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)
)

在 HSQLDB 的 MYS 语法模式下支持一些 MySQL DDL 语法,例如 AUTO_INCREMENT 被翻译为 IDENTITY,但其他的需要手动编辑。除了一些二进制字符串外,数据大多是兼容的。

您需要使用报告查询时间的工具访问数据库。当查询输出处于文本模式时,HSQLDB DatabaseManager 会执行此操作。

于 2011-09-23T18:42:20.870 回答