我有一个具有不同表的MySQL (MyISAM)数据库。让我们以具有以下表的数据库"rh955_omf“为例:
实际上,我只是集中在信号表条目上。因此,我想更好地描述这张桌子。它创建如下:
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和<= max)。如果我再次加载它,它需要0.5秒(缓存)。
所以我想做的是加快数据库的速度。因此,我创建了一些新的数据库,但没有将所有表放入不同的数据库中:
我重新启动了计算机,并从不同的表加载了所有"MeanBeatRate“值。这给了我以下时间:
因此,加载数据的时间取决于数据库中的其他表。这是否可能(因为我只是在“信号”表中搜索)?更令人困惑的是:在"rh955_v_p_copy_omf“表中,我拥有原始表中的所有数据,但是性能要好5倍。对这种行为有什么解释吗?我会感谢任何帮助,因为我真的困在这里,需要提高数据库的性能.
附加信息:在一种情况下,我使用命令“loading 'D:/Exported /rh955/signal.omf‘INFILE rh955_omf.signal”(在加载数据速度慢的情况下)将数据存储在表中,在其他情况下,我逐行存储数据。也许这就是为什么表演不同的原因?如果是,从文件中存储数据的变通方法是什么?
发布于 2012-09-19 09:02:38
它们的索引是一样的吗?
每个DB的服务器参数是否相同(相同的内存、启动配置和参数等等)?
它们在同一个磁盘上吗?
如果它们位于同一磁盘上,那么是否有其他应用程序同时运行,这会影响读写头所在的位置?
您是每次停止其他数据库,还是有些数据库仍在运行?
https://stackoverflow.com/questions/12491326
复制相似问题