【问题标题】:Fluctuation of MySQL PerformanceMySQL 性能波动
【发布时间】:2012-09-19 08:52:15
【问题描述】:

我有一个包含不同表的 MySQL (MyISAM) 数据库。让我们以具有以下表格的数据库“rh955_omf”为例:

  • 信号(600 MB,17925 个条目)
  • 图片(5'355 MB,17925 个条目)
  • 速度(680 MB,4979 个条目)

实际上,我只是专注于信号表条目。因此,我想更好地描述这张表。它的创建如下:

CREATE TABLE rh955_omf.signal(MeasNr TINYINT UNSIGNED, ExperimentNr TINYINT UNSIGNED, Time INT, SequenceNr SMALLINT UNSIGNED, MeanBeatRate SMALLINT UNSIGNED, MedBeatRate SMALLINT UNSIGNED, MeanAmp1 MEDIUMINT UNSIGNED, MeanAmp2 MEDIUMINT UNSIGNED, StdDeviationAmp1 DOUBLE, StdDeviationAmp2 DOUBLE, MeanDeltaAmp MEDIUMINT UNSIGNED, Offset INT UNSIGNED, NrOfPeaks SMALLINT UNSIGNED, `Signal` MEDIUMBLOB, Peakcoord MEDIUMBLOB, Validity BOOL, Comment VARCHAR(255), PRIMARY KEY(MeasNr, ExperimentNr, SequenceNr));

我使用以下命令从该表中加载值:

SELECT MeanBeatRate FROM rh955_omf.signal WHERE MeasNr = 3 AND ExperimentNr = 10 AND SequenceNr BETWEEN 0 AND 407

如果我第一次加载整个“MeanBeatRate”行(int 16 值),大约需要 54 秒(MeasNr = 1..3,ExperimentNr = 1..24,SequenceNr >= min AND

所以我想做的是加快数据库的速度。因此,我创建了一些新的数据库,但没有将所有的表都放到不同的数据库中:

  • rh955_copy_omf:信号表
  • rh955_p_copy_omf:信号表、图片表
  • rh955_v_p_copy_omf:信号表、图片表、速度表

我重新启动了计算机并从不同的表中加载了所有“MeanBeatRate”值。这给了我以下时间:

  • rh955_omf: 54s(如前所述)
  • rh955_copy_omf: 3.1s
  • rh955_p_copy_omf: 12.9s
  • rh955_v_p_copy_omf:10.7s

所以看起来加载数据的时间取决于数据库中的其他表。这甚至可能吗(因为我只是在“信号”表中搜索)?更令人困惑的是:在“rh955_v_p_copy_omf”表中,我拥有原始表中的所有数据,但性能要好约 5 倍。对这种行为有什么解释吗?我会很感激任何帮助,因为我真的被困在这一点上,需要提高数据库性能......

其他信息:在一种情况下,我使用命令“LOAD DATA INFILE 'D:/Exported MySQL/rh955/signal.omf' INTO table rh955_omf.signal”将数据存储在表中(这是加载数据很慢的情况),在其他情况下,我逐行存储数据。也许这就是为什么性能不同的原因?如果是,从文件存储数据的解决方法是什么?

【问题讨论】:

    标签: mysql database performance


    【解决方案1】:

    它们的索引是否相同?

    每个 DB 的服务器参数是否相同(相同的内存、启动配置和参数等)?

    它们在同一个磁盘上吗?

    如果它们在同一个磁盘上,是否有其他应用程序同时运行会影响读写头的位置?

    您是每次都停止其他数据库还是有一些仍在运行?

    【讨论】:

    • 这是很多问题的答案;-)
    • 我在本地运行数据库。所以一切都在同一个磁盘上。同时运行的其他应用程序不应该有(大)影响。我只同时运行一个数据库。
    • 我仍然想知道底层磁盘。第一次加载一个数据库需要 54 秒;我假设这是“rh955_omf: 54s(如前所述)”,比较中的其他数字是第一次加载 - 磁盘可能会影响这一点。碎片等。或解释计划(索引等)它们是否使用相同的访问路径?
    • 是的,他们使用相同的访问路径。问题是:我做了几次这样的测量,结果总是一样,这就是为什么我认为磁盘上的位置不是这个问题的原因。
    • 附加信息:在一种情况下,我使用命令“LOAD DATA INFILE 'D:/Exported MySQL/rh955/signal.omf' INTO table rh955_omf.signal”导入了数据(即加载数据很慢),在其他情况下,我逐行存储数据。也许有区别???
    猜你喜欢
    • 2015-03-17
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多