Я хранил спортивную инвентарь в базе данных mysql. В presnt у меня есть 20 000 записей, около которых около 3000 являются текущими светильниками (в этом году). Текущие приборы, которые мне нужно будет регулярно получать, читать и обновлять, более старые приборы, которые мне нужны только для периодического доступа.Теория дизайна MySQL для 20000 записей
Так что мой план поставить текущие fictures в одну таблицу, а затем сохранить текущий прибор в другом:
fixtures_histroic fixture_current
Это хорошая практика, моя теория не тусклый придется трал через 20 000 записей, когда только 3000 возможных результатов. Затем, когда начинается новый сезон или год, я могу скопировать текущие светильники в историческую таблицу и начать новый ток.
Все это звучит хорошо на практике, мой следующий вопрос - как искать обе таблицы для данных. Я знаю, как сделать простое соединение, но рассмотрим этот запрос, как бы я запросил как matches_current
, так и matches_histroic
. Запрос уже сам по себе является объединением, поэтому это будет объединение объединений. Похоже, это может быть довольно грязно?
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
Так что я делаю правильно, или я должен просто положить все 20 000 записей в один стол?
Вы заранее заблаговременно,
Alan.
«Мой следующий вопрос ...» Пожалуйста, задайте только один вопрос ... за вопрос. –