Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
20000+的MySQL设计理论;记录_Mysql_Theory - Fatal编程技术网

20000+的MySQL设计理论;记录

20000+的MySQL设计理论;记录,mysql,theory,Mysql,Theory,我将运动器材存储在mysql数据库中。在presnt,我有大约20000条记录,其中约3000条是当前固定装置(今年)。我需要定期访问、阅读和更新当前设备,而我只需要定期访问旧设备 因此,我的计划是将当前的ficture放在一个表中,然后将当前fixture放在另一个表中: 历史的 固定装置电流 如果这是一个很好的实践,我的理论是我不想在只有3000条可能的结果的情况下翻阅20000条记录。然后,当新赛季或新年度开始时,我可以将当前赛程复制到历史表中,并开始新的赛程 这在实践中听起来不错,我的下

我将运动器材存储在mysql数据库中。在presnt,我有大约20000条记录,其中约3000条是当前固定装置(今年)。我需要定期访问、阅读和更新当前设备,而我只需要定期访问旧设备

因此,我的计划是将当前的ficture放在一个表中,然后将当前fixture放在另一个表中:

历史的 固定装置电流

如果这是一个很好的实践,我的理论是我不想在只有3000条可能的结果的情况下翻阅20000条记录。然后,当新赛季或新年度开始时,我可以将当前赛程复制到历史表中,并开始新的赛程

这在实践中听起来不错,我的下一个问题是如何在两个表中搜索数据。我知道如何做一个简单的连接,但是考虑这个查询,我将如何查询<代码> MatthSeWix和<代码> MatHeSHIHSTROIC<<代码>。查询已经是一个连接,因此它将是一个连接的连接。看起来可能会变得很乱

SELECT `m`.*, `h`.`name` AS  "homeTeam", `a`.`name` AS  "awayTeam", `o`.*
FROM `matches_current` m
JOIN `teams` `h` ON `m`.`home_team_id`=`h`.`team_id` 
JOIN `teams` `a` ON `m`.`away_team_id`=`a`.`team_id`
JOIN `outcomes` `o` ON `m`.`score_id`=`o`.`outcome_id`
WHERE `home_team_id`=1 AND `away_team_id`=2 
AND `m`.`score_id`>0 
ORDER BY `date` DESC
那么,我所做的是正确的,还是应该将所有20000条记录放在一个表中

提前谢谢大家,


艾伦。

糟糕的主意。20000张唱片并不多。通过对数据采用适当的索引方案,您可能可以随心所欲。而且,在多个表中拆分相同的数据会给维护、安全性、备份和数据完整性带来问题

对如此少量的记录执行此操作的唯一原因是记录大小过大。因此,即使记录是10000字节,表占用的总空间也只有200 MB——按照数据库标准,这仍然很小

如果您有更多的行并且希望处理这种情况,我建议您对表进行分区,而不是创建另一个表。

关于您的“第一个”问题,将“历史”和“当前”数据分开:

我不认为这会有任何有益的影响,因为您将有这么少的行。相反,这将使事情变得更加复杂……

“我的下一个问题是……”请只问一个问题。。。每个问题。