サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
daybydaypg.com
INDEXを追加することでWHERE句でのレコードの絞り込みが速くなることは、SQLを少しでも学んだことのある人なら当たり前に知っていることだと思う。 システムを運用していく期間が長くなればなるほどレコード数は膨大になり、WHERE句で絞り込んだとしても結果として返されるレコード数が多くなってしまうこともある。 単純に絞り込んだ結果を並び順関係なく出力させる場合は問題ないが、WEBシステムやアプリなどでは、登録された日付が近いもの順でソートしたい場合や、IDが若い順でソートしたい場合など、出力結果をソートしたい場合が多々ある。 そんな時はクエリにORDER BY句を記述することで対処することがあると思うが、実はこのORDER BY句によるソートがボトルネックの原因になってしまうことがある。 WHERE句で指定しているカラムにINDEXが張ってある場合以前の記事で利用したsampleテーブル
MySQLでは文字列の検索時に大文字小文字を区別しないWHERE句で条件を指定する時に、ユーザーの名前など文字列で検索する場合が多々ある。 Oracleでは気にしたことはなかったのだが、MySQLではデフォルトの状態では大文字小文字の区別をしない。 mysql> SELECT * FROM testtable; +------+------+ | no | name | +------+------+ | 1 | test | | 2 | TEST | | 3 | abc | | 4 | ABC | | 5 | tEsT | | 6 | tEst | | 7 | Test | +------+------+ こんな感じのtableからnameが’test’のユーザーだけ引っ張りたい場合は SELECT * FROM testtable WHERE name = 'test';といったクエリ
このページを最初にブックマークしてみませんか?
『daybydaypg.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く