
おはようございます。
SQLServerのテーブルに格納された情報が多いので
インデックスを用いて検索処理を早めたいと考えました。
---テーブル構成--------------
name / varchar
address / varchar
age / int
----------------------------
name,addressフィールドにインデックスを指定したのですが、
インデックスを指定することにより検索するSQL文に
なにか特別な書き方をしなくてはいけないのでしょうか?
select name, address, age from test_table;
ってSQLを記述しただけでは、
インデックスを作成する前と後では意味はないのでしょうか?
宜しくお願い致します。m(_ _)m
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちわ。
> インデックスは定義するだけで、SQL文にとくに特別記述しなくても
> かってにインデックスを使って検索を行ってくれるということでしょうか?
そうです。
但し、どのような操作を行うのかによって、インデックスの付け方を
設計してやる必要があります。
闇雲に索引を定義すると、データベースの更新性能が劣化するので
気を付けて下さい。
No.2
- 回答日時:
こんにちわ。
そうですね。
nanashinogombei さんもおっしゃられていますが、検索条件を指定
しないとインデックスを定義していてもRDBMS としてはインデックスを
使用しません。
一般的に、インデックスの有無はRDBMS が透過的に処理を行ってくれますので、
インデックスを定義すれば、RDBMS が使用可能なインデックスを使って
検索を行ってくれます。
但し、今回のように検索条件が指定されていない場合は、いくらインデックス
を定義しても意味がありません。
一般的に、インデックスは大量のデータの中から少量のデータを検索する
際に有効となります。
指定した検索条件が、レコードの大部分に合致するような場合では
逆にインデックスを使用しない方が高速に検索が行える事もあります。
返信ありがとうございます。
>インデックスの有無はRDBMS が透過的に処理を行ってくれますので、
>インデックスを定義すれば、RDBMS が使用可能なインデックスを使って
>検索を行ってくれます。
インデックスは定義するだけで、SQL文にとくに特別記述しなくても
かってにインデックスを使って検索を行ってくれるということでしょうか?
No.1
- 回答日時:
まず、インデックスの設定が妥当で合理的なものなのか検討が必要です。
一般的には検索時のWHERE条件で使用される列で、かつ絞込みの大きい項目に
設定します。
select name, address, age from test_table;
↑コレだと全件抽出ですよね?(^^;
(インデックスがどうこうとかは関係ないような・・・?)
addressというのが「住所」なのか、E-mailアドレスなのかわかりませんが、検索条件に
使うことはあるのでしょうか?
「住所」の意味なら、「都道府県」や「市町村」で検索できるようでなければ使い勝手は
よくありませんし、テーブル設計的に見て正規化がじゅうぶんでないように思います。
インデックスについては、下記の質問/回答も参考にしてみてください。
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=458565
この回答への補足
返信ありがとうございます。
実際のテーブル構成、SQLは上記とは異なります。
サンプル的な感じで書いたことが誤解を招いてしまいました。
失礼しました。
テーブル構成フィールド数、SQL文の複雑さを省いて質問させてい
ただきたいと考えています。
SQL文を発行する際に、作成したインデックスにまつわる情報も
記述するのでしょうか?
select f_a, f_b, ・・・ from test_table
[use f_a] ←こういった感じで。でもこれは適当に考えました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Visual Basic(VBA) 【VBAで、On Error が効かない】 3 2022/06/09 10:08
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- 外国株 インデックス投資は、実は罠がある、バンガード社が、ウオール街の ランダムウオーカーとか、宣伝活動した 2 2023/01/06 22:08
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
効率的なインデックスのつけ方は?
-
cron設定について
-
Movable TypeとNamazuについて
-
お薦めのインデックスプリント...
-
intel 945Pチップセットのパフ...
-
パソコンが異常に遅くなってい...
-
MySQLのインデックスについて
-
リリポップサーバーの独自ドメ...
-
年と月が別カラムの場合のSQL
-
Googleデスクトップで,インデ...
-
『ラミネートインデックスシー...
-
インデックスホールディングス...
-
エクセル、セルにリスト表示させる
-
Accessのテーブル設計について...
-
インデックスを調べる方法は?
-
Accessのコンボボックスの使い...
-
MySQL+PHP 特定レコードの更新...
-
SQL結合条件
-
Access97で数値型からテキスト...
-
ACCESS2007 重複について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql IN句に1データだけ指定...
-
インデックスの再構築の意味っ...
-
ビューにインデックスを設定で...
-
【SQLServer】IS NULLのパフォ...
-
コクヨ タイトルブレーンでイ...
-
主キーにインデックスは貼らな...
-
[ BETWEEN ] vs [ >= AND <= ]
-
年と月が別カラムの場合のSQL
-
outlook2007 検索できないんです
-
数学でunprimedとは何を意味し...
-
Google検索はなぜ早い?
-
MySQLでFullTextインデックスの...
-
ホームページがGOOGLEにインデ...
-
MS-DOS時代のデーターベ...
-
テキスト項目255ケタのメリット...
-
500Gのテキストファイルから全...
-
インデックスがすぐに壊れます…
-
サーバ負荷を抑える大量データ...
-
インデックスについて
-
Oracleでの検索スピード
おすすめ情報