gpt4 book ai didi

java - 使用 SELECT * FROM [table] 时 hsqldb 非常慢

转载 作者:行者123 更新时间:2023-11-29 06:14:37 24 4
gpt4 key购买 nike

我正在尝试启动 hsqldb 的嵌入式版本,它与包含的工具一起工作正常,它们并不慢或任何东西。

但是当我尝试使用以下代码获取 20 行时,最多需要 10 秒才能打印出所有结果

Class.forName("org.hsqldb.jdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:hsqldb:hsql://127.0.0.1/woopwoop", "SA", "");

Statement st = conn.createStatement();

ResultSet rs = st.executeQuery("SELECT * FROM ttris_users");

while(rs.next())
{
output += "<tr>";

output += "<td>" + rs.getString("id") + "</td>";
output += "<td>" + rs.getString("name") + "</td>";
output += "<td>" + rs.getString("password") + "</td>";
output += "<td>" + rs.getString("email") + "</td>";
//name, password, email

output += "</tr>";
}

我以非常简单的方式初始化服务器,这可能是它运行缓慢的原因,我该如何优化它?

org.hsqldb.server.Server server = new org.hsqldb.server.Server();
server.setDatabaseName(1, "woopwoop");
server.setDatabasePath(1, "C:\\ttris\\db\\");
server.start();

在控制台打印的日志中,查询显示27

[编辑]这是日志中的第一个条目

[Server@1050e1f]: [Thread[HSQLDB Server @1050e1f,5,main]]: handleConnection(Socket[addr=/127.0.0.1,port=37523,localport=9001]) entered
[Server@1050e1f]: [Thread[HSQLDB Server @1050e1f,5,main]]: handleConnection() exited
[Server@1050e1f]: [Thread[HSQLDB Connection @3e0ebb,5,HSQLDB Connections @1050e1f]]: 0:Trying to connect user 'SA' to DB (woopwoop)
[Server@1050e1f]: [Thread[HSQLDB Connection @3e0ebb,5,HSQLDB Connections @1050e1f]]: 0:Connected user 'SA'
[Server@1050e1f]: 0:SELECT * FROM ttris_users
[Server@1050e1f]: [Thread[HSQLDB Server @1050e1f,5,main]]: handleConnection(Socket[addr=/127.0.0.1,port=37524,localport=9001]) entered
[Server@1050e1f]: [Thread[HSQLDB Server @1050e1f,5,main]]: handleConnection() exited
[Server@1050e1f]: [Thread[HSQLDB Connection @76fba0,5,HSQLDB Connections @1050e1f]]: 1:Trying to connect user 'SA' to DB (woopwoop)
[Server@1050e1f]: [Thread[HSQLDB Connection @76fba0,5,HSQLDB Connections @1050e1f]]: 1:Connected user 'SA'
[Server@1050e1f]: 1:SELECT * FROM ttris_users
[Server@1050e1f]: [Thread[HSQLDB Server @1050e1f,5,main]]: handleConnection(Socket[addr=/127.0.0.1,port=37525,localport=9001]) entered
[Server@1050e1f]: [Thread[HSQLDB Server @1050e1f,5,main]]: handleConnection() exited
[Server@1050e1f]: [Thread[HSQLDB Connection @16dadf9,5,HSQLDB Connections @1050e1f]]: 2:Trying to connect user 'SA' to DB (woopwoop)
[Server@1050e1f]: [Thread[HSQLDB Connection @16dadf9,5,HSQLDB Connections @1050e1f]]: 2:Connected user 'SA'
[Server@1050e1f]: 2:SELECT * FROM ttris_users

问题出在使用数据的 servlet 中,现在已解决

最佳答案

这里有些不对劲。我认为您没有为我们提供识别问题所需的所有代码。

如果您的日志显示查询执行了 27 次,那么这就是问题所在。找出为什么。您粘贴的代码不包含会导致此问题的循环。因此,我必须假设导致此问题的代码未包含在您提供给我们的示例中。

在日志中添加额外的条目并通过执行跟踪您的程序。找出循环 27 次的位置和原因。您提供给我们的信息没有表明这一点。

另外,你说你用这段代码得到20张表。你是说 20 条记录/行?我只看到一个表中的查询:ttris_users

关于java - 使用 SELECT * FROM [table] 时 hsqldb 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5565890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com