MySQLで日時や日付で範囲検索する際の速度向上
結論としてはUNIXタイムスタンプ型にする。
MySQLでdatetime型で2013-01-01 00:00:00みたいに
入れるよりint型で1356966000で入れる。
検索の際はシングルクオートで囲わないようにする。
■参考サイト
http://fukaoi.org/2009/06/10/mysql_datetime
集計関連のページを作成しており、7つのSQL文があり
全部しらべたところ速度が3.6倍になった。
あとCOUNT関数よりもSUM関数で顕著な差が出た。
全部タイムスタンプでいったらよさそうだけど、
実務のことを考えると、日々生成されるログ系を
UNIXタイムスタンプ型で作る、のが現実的っぽい。
関連記事
-
-
MySQLで1対多のデータ結合と条件検索
MySQLで飲食店舗テーブルと休業日テーブルがあり、1店舗に対して複数行の休業日 ...
-
-
MySQLで指定の順にデータをソートする方法(ORDER BY FIELD)
MySQLで指定した順にソートしてデータを取り出したい。通常だと主キーだったり何 ...
-
-
MySQLiでUPDATE文
MySQLiでUPDATE文 ■ソース $mysqli = new mysqli ...
-
-
MySQLでホスト指定しても正常に接続できない場合
MySQL自体は動いており、ユーザーも登録されているのに、ホスト名を指定しても正 ...
-
-
MySQLでサイズの大きいファイルのインポート
MySQLでサイズの大きいdumpファイルを異なるサーバに移行したかった。また移 ...
-
-
MySQLで月別に集計を行う。あと日付時刻関数。
現在進行形でやっているデータ集計系だけど 新たな発見があったのでメモ。 ■日付時 ...
-
-
MySQLで経度緯度から半径○Kmのデータを抽出
経度と緯度をtext型として格納しているMySQLのテーブルがあり、指定した経度 ...
-
-
MySQL/Apacheの再起動
忘れないようにメモ。 ■MySQL service mysqld restart ...
-
-
コマンドでMySQLに郵便番号データを入れる
練習としてコマンドから郵便番号データを入れた際のメモ。 --------- 1: ...
-
-
MySQLのクエリキャッシュ設定
以前クエリキャッシュを設定していたけど、 これだとmysqlを再起動した時に再度 ...