猫型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

執筆者:

関連記事

mysql

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

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

mysql

MySQLのmysqldumpのエクスポートとインポート

ダンプはバックアップやテストに大活躍してくれます。 しかし、データベース単位でエクスポートしても、インポートには随分時間がかかったりします。 その辺は別の機会にしますが、今回は基本コマンドのまとめです …

mysql

mysqldumpでテーブル毎のダンプを圧縮して取得するスクリプト

mysqldumpではデータベースを指定して一括してダンプを取得できます。テーブル毎のダンプも取得できます。 しかし、一括して取得したダンプの1つのテーブルだけをインポートすることはできません。これは …

mysql

MySQLのwait_timeout

データベースやWebサーバーは、実際に稼働してから問題が多発します。 データ量が増えてきたり、アクセスが増えてきたらまずレスポンスの問題が発生するでしょう。 経験のあるエンジニアがいれば、十分なテスト …

mysql

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

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