DataBase MySQL

MySQLのChar型は”(ダブルクォーテーション)ではなく'(シングルクォーテーション)でSELECT

投稿日:2013年2月23日 更新日:

タイトルの通り
MySQLのChar型は”(ダブルクォーテーション)ではなく'(シングルクォーテーション)で囲ってSELECT
しなければなりません。

正確には、そうしなければパフォーマンスが大幅に低下します。
問題は、”(ダブルクォーテーション)でもselectできてしまう点です。

以下のようなテーブルがあったとします。

mysql# desc sample_table;
+-------------+---------------------+------+-----+-------------------+-----------------------------+
| Field       | Type                | Null | Key | Default           | Extra                       |
+-------------+---------------------+------+-----+-------------------+-----------------------------+
| id          | char(16)            | NO   | PRI | NULL              |                             |
| name        | char(25) unsigned   | NO   | MUL | 0                 |                             |
| create_date | datetime            | NO   |     | NULL              |                             |
| delete_date | timestamp           | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-------------+---------------------+------+-----+-------------------+-----------------------------+
4 rows in set (0.00 sec)

以下のSELECTだと1行のデータは非常にすくなくいのですが2000万件近くになると、インデックスが効いていても5~6秒かかります。

mysql -h 192.168.1.10 -u user -ppasswd -e "select id from sampleDB.sample_table where id ="1234567890123456"";

“(ダブルクォーテーション)ではなく'(シングルクォーテーション)に変更すると、一瞬です :x002:

mysql -h 192.168.1.10 -u user -ppasswd -e "select id from sampleDB.sample_table where id ='1234567890123456'";

Gooleアドセンス用336

Gooleアドセンス用336

-DataBase, MySQL

執筆者:

関連記事

mysql

vmwareをアップデートしたらMySQLが起動しなくなった

[root@centos100 log]# service mysql restart MySQL server PID file could not be found! [失敗] Starting …

mysql

MySQLにファイルからSQLを読み込む

MySQLにファイルからSQLを読み込む方法は 意外と知られていない方法ですのでメモっておきます。 INDEX1 MySQLにログイン中の場合2 スクリプトから実行する場合3 おまけのコマンドで指定す …

mysql

MySQLのデータ構造

MySQLのインストールは簡単ですが、 ディレクトリ構造を知っておくことは障害対応にも必要ですのでまとめです。 MYSQLのデータ構成 /etc/my.cnfでメインディレクトリやソケット(mysql …

mysql

MySQLで相関サブクエリを実行する

相関サブクエリとは、SQLの実行結果の行と行を比較することです。 ある行とある行の時間差を求めることで何秒間隔でデータが登録されているかがわかったり、 ある行とある行の売上差を求めることで、売上の上が …

MySQLの実行速度テスト用PHP

1.testデータベースにtest_tableテーブルを作成。 2.1万件のデータを登録します。 3.1000件のフラグを更新 4.更新したデータを検索する時刻を測定して表示 するサンプルです。 &l …