« システムコールの最適化 | メイン | キャッシュシステムの Thundering Herd 問題 » 2007年09月20日 MySQL の高速化プチBK 鴨志田さんに教えていただいたのですが、MySQL のクエリは数値をクォートしない方が高速になるらしいです。たとえば以下の例では、160万件の整数から4の倍数を数えていますが、数値をクォートしないほうが約50%も高速になっています。 mysql> show create table numbers; +---------+-------------... > このページを見る
最終更新時間:
2007年09月20日12時13分
みんなのブックマーク 人気(0) 新着
- "DBI::execute を呼んでいると、プリペアードステートメントのパラメータは必ずクォートされてしまいます。集約処理等、重たいSQLを実行するにあたっては、DBI::bind_param で数値型であることを明示すべき、と言えるでしょう。
- MySQL のクエリは数値をクォートしない方が高速になるらしい
- クエリで数値をクォートしてしまうとキャストが走って遅くなる。50% くらい遅くなっている。特にORM 等、アプリケーションプリペアードステートメントの機能を備えるものはクォートされる可能性が高いので注意
- 再ブクマしました。これ重要ですね。わたしのエントリも関連すると思います> 『SQLの暗黙の型変換はワナがいっぱい』 http://www.tokumaru.org/d/20090924.html#p01
- Perl の場合、DBI::execute を呼んでいると、プリペアードステートメントのパラメータは必ずクォートされてしまいます。集約処理等、重たいSQLを実行するにあたっては、DBI::bind_param で数値型であることを明示すべき
- 集約処理等、重たいSQLを実行するにあたっては、DBI::bind_param で数値型であることを明示すべき
- 集約処理等、重たいSQLを実行するにあたっては、DBI::bind_param で数値型であることを明示すべき
- Perl
- perl+Mysqlで 数値を扱うときに読む
- 当たり前
- 『MySQL のクエリは数値をクォートしない方が高速になるらしい』
- 数値はクォートしないほうが速いらしい
- MySQL のクエリは数値をクォートしないほうが高速。Perl の場合は DBI::bind_param で SQL_INTEGER を指定する。
- 検索条件に含まれる数値はクォートで括ると検索が遅くなる
- へぇ。って、読んだら覚えたからブクマする必要ないかも・・・。
- へえ。
- PerlのSVで数値になっていればクォートされない気がするけど、ドライバ依存?
- へー。
- ほえ〜、細かいところで変わるもんなんだな
- ↓id:nipotan Yes ↑id:miyagawa mysql_unsafe_bind_type_guessing=>1 にしない限りダメだと思います in DBD::mysql 4.005
このエントリーを含むエントリー(10)
-
徳丸浩の日記 - 複文が利用できるデータベースの調査(2) - SQL Serverが狙われるにはまだまだ理由がある 2 users
-
数値型に対するSQLインジェクション対策 - ockeghem(徳丸浩)の日記 4 users
-
PHP逆引きレシピは概ね良いが、SQLインジェクションに関しては残念なことに - ockeghem(徳丸浩)の日記 146 users
-
徳丸浩の日記 - 変数に型のない言語におけるSQLインジェクション対策に対する考察(5) - 数値項目に対するSQLインジ... 9 users
-
Kazuho@Cybozu Labs: キャッシュシステムの Thundering Herd 問題 22 users
-
Kazuho@Cybozu Labs: システムコールの最適化 38 users
-
daily dayflower - DBI で printf オレオレ流 2 users
-
Kazuho@Cybozu Labs: DBI::Printf - A Yet Another Prepared Stat... 26 users
-
徳丸浩の日記 - 変数に型のない言語におけるSQLインジェクション対策に対する考察(5) - 数値項目に対するSQLインジ... 30 users
-
404 Blog Not Found:perl - $scalarの中身が数値か否かを判定する 49 users



![基礎からのMySQL [基礎からのシリーズ] (プログラマの種シリーズ)](http://ecx.images-amazon.com/images/I/41cVdML6rcL._SL75_.jpg)




