頻繁に使用されるアプリケーション用の大規模データベースの設計に取り組んでいます。アプリケーションには、販売時に多くの挿入/更新が行われますが、より多くの選択があります。複数 (3 ~ 6) の内部結合を伴う select ステートメントを多数実行します。
innoDB はこれらの複雑な選択ステートメントをどのように処理しますか。また、select でフィルターとして多くの datetime 句を使用します。
そのようなアプリケーションの場合、MyIsam よりも InnoDB の方が適しているのでしょうか? それとも、古い MyIsam メソッドを使用する必要がありますか?
これは select ステートメントの例です
SELECT act.subject, act.attempts, in.industry_name, zn.zone_name, cc.code_id, DATE_FORMAT(act.due_on, "%m-%d-%Y %T") AS due_on FROM activities AS act
INNER JOIN industries AS in ON in.industry_id = act.industry_id
INNER JOIN zones AS zn ON zn.zone_id = act.zone_id
INNER JOIN call_codes AS cc ON cc.code_id = act.code_id
WHERE act.due_on BETWEEN (CURRDATE() + ' 00:00:00') AND (CURRDATE() + ' 23:59:59')
ORDER BY act.due_on
**This is a summery of fields description**
The following field's type are CHAR(50)
act.subject
in.industry_name
zn.zone_name
the following field's type are INT(10) unsigned and they are all foreign keys
cc.code_id
in.industry_id
zn.zone_id
the following field's type are INT(10) unsigned and they all are indexed
act.industry_id
act.zone_id
act.code_id
this field is a date time
act.due_on
私のアクティビティ テーブルには 300 万件のレコードがあることにも注意してください。また、COUNT()、MAX()、MIX()、SUM()、AVG()、CASE WHEN SOME THEN OTHER END を使用して重いレポートを作成します.....