3

我最近从使用本地 MySQL 实例切换到对我的 C# 应用程序使用 Xeround MySQL 实例。因此,我注意到查询运行速度要慢得多。我目前正在运行左连接以创建一个新表,并试图将我的运行时间缩短几秒钟。

我观察到以下平均运行时间:

  • 创建表为(选择):14s
  • 创建表并插入左连接:14 秒
  • 仅 SELECT 语句:9s
  • 创建临时表为(选择):9.2s
  • 创建视图和检索内容:9.5 秒

目前我正在运行该CREATE TABLE AS (SELECT)声明。显然,我想减少与从仅选择语句移动到使用选择语句相关的五秒溢价CREATE TABLE。使用视图似乎很有希望,但是从视图访问数据非常慢,并且不能证明这里节省的时间是合理的。使用临时表似乎也很有希望,但是按照我进行函数调用的方式,该表将在我完成访问之前被删除。我可以使用另一个关键字来告诉 MySQL 引擎获取SELECT语句的内容并将其放入准系统表中吗?

4

1 回答 1

0

5 秒的延迟似乎是由将所选记录写入表中引起的。如果可用内存允许,请尝试使用MEMORY引擎创建表:

CREATE TABLE myTempTable ENGINE=MEMORY AS SELECT (...)

至于与本地服务器相比性能更差(假设硬件规格相似),我建议比较SHOW VARIABLES每个系统上的输出,尤其是那些以“innodb_”开头的变量。

于 2013-05-23T15:41:07.387 回答