ホーム > タグ > MySQL
MySQL
datetime型のカラムから日付データを引っ張ってくる際の高速化
- 2010-06-23 (水)
- MySQL
ちょっとMySQLのチューニングをしたらすごく早くなったので、メモメモ。
datetime型のカラムから日付のみをwhere訳にデータを引っ張ってくることはよくあります。
で、レコードが数万行になってくるとけっこう遅くなったりする。
そしてカラムにインデックスを張っても全然速度があがらなかったりします。
これはクエリーがインデックスを使用していないからなんですね。
苦しまぎれにdate型のカラムを作って日付だけを入れるという手法もありますが、ちょっとスマートじゃないです。
datetime型を維持したままで高速化できます。
例えばこういうクエリー
SQL
select * from item where 'datetime' like '2010-06-23%';
あとはこんなクエリー
SQL
select * from item where 'datetime' >= '2010-06-23 00:00:00' and 'datetime' <= '2010-06-23 23:59:59';
後者の方がちょっとマシですが、どちらもインデックスを見ていないので、レコード数が増えるにつれてだんだんと重くなってきます。
このクエリーをこうしてあげましょう。
SQL
select * from item where 'datetime' between '2010-06-23 00:00:00' and '2010-06-23 23:59:59';
between datetime型 and datetime型の文体にすることでインデックスが使用され、高速化するんですね。
こんな書き方もできます。
SQL
select * from item where 'datetime' between '2010-06-23' and '2010-06-23' + interval 1 day;
かなり早くなるのでお試しください!
いままでのクエリーも書き直さないと・・・・。
- Comments: 0
- Trackbacks: 1
関連記事
CentOSにMySQL,Apache,PHPをソースからインストール
- 2008-06-14 (土)
- サーバ
自宅での開発環境を整えたいと思い立ち、VMwareにCentOSを入れ、MySQL、apache、PHPをインストールした。
慣れているし柔軟なので、ソースから。
インストールするときにいろいろ足りないと聞かれて、yumでインストールしたものが大量にあった。次回は以下のコマンドで一発なはず。
yum install gcc gcc-c++ openssl-devel libxml2-devel.i386 curl-devel.i386 libjpeg-devel.i386 libpng-devel.i386 libgif-devel.i386 libmcrypt-devel.i386 ncurses-devel.i386 expat-devel
ではそれぞれ入れていきます。
- Comments: 0
- Trackbacks: 0
関連記事
phpとMySQLとapacheのコンパイル
- 2008-05-10 (土)
- 未分類
サーバ立ち上げにあたり、apache,php,mysqlを入れたので、そのメモ。
apache
./configure --prefix=/usr/local/apache2 --enable-ssl --enable-rewrite --enable-so
PHP
./configure --enable-mbstring --enable-soap --enable-zend-multibyte --with-apxs2=/usr/local/apache2/bin/apxs \ --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-curl --with-curlwrappers --with-gd \ --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-zlib-dir=/usr/lib --with-mcrypt
MySQL
./configure --with-charset=ujis --with-extra-charsets=all --with-mysqld-user=mysql --with-innodb --prefix=/usr/local/mysql
- Comments: 0
- Trackbacks: 0
関連記事
Home > Tags > MySQL



