mysql:4774
From: "Hideki Hashinaga" <"Hideki Hashinaga" <hasi@xxxxxxxxxx>>
Date: Tue, 4 Dec 2001 22:20:19 +0900
Subject: [mysql 04774] Re: 検索スピードアップ
初めて参加させていただきます。 橋永と申します。 ご質問の趣旨から外れているかもしれませんが、こんな方法はいかがでしょう SELECT colum_name FROM table_name WHERE ID % $interval = $start [AND $interval >= $sub_start] $interval はインターバルとして $start は 抽出したい数字の最小値(インターバルの設定よりも少ない数字) 場合によってはAND以下を追加する必要もあるかもしれません。 ただ、カラムが2000にも及ぶテーブルでの環境では試したことが無いのでど うかわかりませんが。 > 1テーブルのレコード数は5万件、カラム数は2000。 > IDにインデックスを作成しています。 > ---------------------- > | ID | A | B | C | ・・・・・ > ---------------------- > | 1 | 10 | 20 | 30 | ・・・・・ > | 2 | 20 | 30 | 40 | ・・・・・ > | 3 | 20 | 10 | 20 | ・・・・・ > | ・ | ・・ | ・・ | ・・ | ・・・・・ > | ・ | ・・ | ・・ | ・・ | ・・・・・ > | ・ | ・・ | ・・ | ・・ | ・・・・・ > | 50 | 10 | 20 | 30 | ・・・・・ > > > このテーブルから、検索開始点(MaxID = 48)と > インターバル(interval = 3)を設定し、 > 検索開始点からインターバルを引いていき、 > そのIDを検索していくものを作成しています。 > 例でいくと、ID = 48,45,42,39,36,33,30,・・・・・ > のレコードを取得する形となります。 > > 現在、色々と検討した結果、 > "SELECT colum_name FROM table_name WHERE ID IN(strData)" > (strDataは前もってFOR文で設定済み
4744 2001-11-29 14:54 [<yamauchi@xxxxxxxxxx] ODBC ドライバ経由での CREATE TABLE でエラー 4772 2001-10-02 21:05 ┗["JRCS開発 柄本" <tuk] 検索スピードアップ 4773 2001-12-04 22:09 ┣[Tomohiro 'Tomo-p' KA] 4776 2001-10-03 08:51 ┃┗["JRCS開発 柄本" <tuk] 4777 2001-12-05 11:54 ┃ ┗[Tomohiro 'Tomo-p' KA] 4778 2001-10-03 14:18 ┃ ┗["JRCS開発 柄本" <tuk] 4782 2001-12-05 15:02 ┃ ┗[Tomohiro 'Tomo-p' KA] -> 4774 2001-12-04 22:20 ┣["Hideki Hashinaga" <] 4775 2001-12-05 03:30 ┃┗["Hideki Hashinaga" <] 4791 2001-12-06 00:40 ┗[とみたまさひろ <tomm] 4797 2001-12-07 22:12 ┗["JRCS開発 柄本" <tuk] 4798 2001-12-08 03:22 ┣[Hiroshi Takiguchi <t] 4800 2001-12-08 15:21 ┃┗[Hiroshi Takiguchi <t] 4799 2001-12-08 10:33 ┗[とみたまさひろ <tomm]