1

頻繁に使用されるアプリケーション用の大規模データベースの設計に取り組んでいます。アプリケーションには、販売時に多くの挿入/更新が行われますが、より多くの選択があります。複数 (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 を使用して重いレポートを作成します.....

4

0 に答える 0