猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

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

執筆者:

関連記事

sqlserver

「.NET」と「ASP.NET」からのSQL Serverへのコネクションを確認する(1)

INDEX1 コネクション数と状態を確認する2 コネクションプールとは3 コネクションを制御する設定 コネクション数と状態を確認する SQLSERVERのコネクション数を確認するには下記のSQLを実行 …

mysql

CentOS6.4にMySQL5.6をインストールする

INDEX1 RPMのダウンロード2 tarの解凍3 rpmをyumでインストール4 サービス名が違う?5 mysql_secretにrootの初期パスワードはある6 mysql_secure_ins …

mysql

MySQLでフラグの列でSELECTする。(複合インデックスの使用条件)

status=’1’とかdelete=’0’といった条件はよく使用することでしょう。 そこでフラグにはどのデータ型がベストなのでしょうか。 INDEX1 …

mysql

MySQLのインポートエラー ERROR 1005 (HY000) (errno: 121)

ダンプをインポートする際にたまにるのがこのエラーです。 ERROR 1005 (HY000) at line 23: Can’t create table ‘./[スキーマ]/ …

mysql

MySQL load dataでcsvをインサートする

かなり高速でinsertしてくれます。 INDEX1 使い方2 ERROR 10453 [補足]insertを高速にする 使い方 MySQLにログインして、データベースを指定して実行します。 mysq …