sql >> データベース >  >> RDS >> Mysql

日付から曜日を選択

    DAYOFWEEK を使用します クエリでは、次のようになります:

    SELECT * FROM mytable WHERE MONTH(event_date) = 5 AND DAYOFWEEK(event_date) = 7;
    

    これにより、5月の土曜日のすべての情報が見つかります。

    最速の読み取りを取得するには 曜日(およびその他の必要なもの)である非正規化フィールドを保管します。そうすれば、列にインデックスを付けて、全表スキャンを回避できます。

    上記を最初に試して、ニーズに合っているかどうかを確認し、そうでない場合は、列をいくつか追加して、書き込み時にデータを保存してください。更新の異常に注意してください(event_dateを変更する場合は、必ずday_of_week列を更新してください)。

    非正規化されたフィールドは、書き込みにかかる時間を増やし、書き込みの計算を増やし、より多くのスペースを占めることに注意してください。本当にメリットが必要であり、それが役立つことを測定できることを確認してください。



    1. SQLiteで文字列を連結する方法

    2. MySQLWorkbenchを使用してEC2インスタンスを介してAmazonRDSインスタンスに接続する

    3. プライマリインデックスとセカンダリインデックス:パフォーマンスの違い

    4. SQLiteで現在の時刻を取得する方法