
商品情報が入ったテーブルから、一致した件数を求めて、商品名を一覧表示するSQLなのですが、件数を求めるのに時間がかかります。もっと早くする方法はないでしょうか?
登録されているのは700万件ぐらいで、件数を表示させるのに2.5秒、商品名を出すのは0.3秒くらいです。
select `商品名` FROM `商品情報` WHERE `商品名` LIKE '%検索ワード%' LIMIT 0 , 30
これで検索結果を求めて、
select count(`商品名`) FROM `商品情報` WHERE `商品名` LIKE '%検索ワード%'
で一致した件数を求めています。
サーバのスペック
メモリ1GB
CPU2.66GHz
No.3ベストアンサー
- 回答日時:
参考までに私の環境です
パソコン(テストのテストでまずは自分のパソコンで馬鹿なミスや無限ループなどないことを確認するため)
windows2000
ペンティアム4/1.7GHz
メモリ512M
テストサーバ
windows2000Server、turboLinux、redhat、freeBSD などなど
ペンティアム4/2GHz ~ Xeon等
メモリ1G~以上
テストサーバの中で
windows2000ServerのサーバとLinuxのサーバで
OS以外のスペックが同等なものがありますのでテストしてみたところ
5万レコードあるtableへ同じ検索をかけると
SELECT name
FROM `product`
WHERE name LIKE '%検索商品名%'
自分のパソコンで0.1630 秒
win2000Serverで 0.0237 秒
Linuxで 0.0090 秒
自分のパソコンは参考までのタイム
win2000ServerとLinuxではマシンスペックは同じであることを考えると
Linuxのほうが早いと言わざるを得ない結果が出ています
5万レコードでこの差ですから、700万レコードならば当然もっと差が出ることになると思います
No.2
- 回答日時:
No.1
- 回答日時:
OSすらワカランのでなんともいえませんが、
開発段階のテストのさらにテスト用でwindowsだとしたら
700万件の情報をブンまわすのに、パソコンサーバ1台だけならそんな程度かそれ以上の時間はかかるんではないでしょうか?
SELECT count( * ) FROM `商品情報` WHERE `商品名` LIKE '%検索ワード%'
こっちもためしてみてください
この回答への補足
SELECT count( * ) FROM `商品情報` WHERE `商品名` LIKE '%検索ワード%'
でもやってみましたがほとんど時間は変わりませんでした。
OSはWindowsXPを使用しているのですが、Linuxなどではもっと早くなるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- その他(ネットショッピング・通販・ECサイト) 転売されてしまった商品を取り返そうと検索していたらフリマサイトや大手会社ではない聞いたことのないサイ 5 2022/08/25 21:22
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Visual Basic(VBA) EXCEL関数LOOKUPとFILTERについての質問です 1 2022/12/21 05:53
- PHP PHP MySql ページング 2 2022/09/20 06:38
- その他(プログラミング・Web制作) パイソンでのプログラミングについて 3 2022/08/11 20:31
- Excel(エクセル) エクセルの表について 3 2023/04/14 18:00
- ヤフオク! ヤフオクの検索条件について 2 2023/03/28 16:49
- Excel(エクセル) エクセルでのVBA 2 2022/08/03 06:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レジストリについて
-
ORA-12571 パケット・ライター障害
-
デフォルトのCLIENT_ENCODINGを...
-
大至急!mdfファイルの中身を見...
-
PostgreSQLをC言語でアクセスし...
-
PostgreSQLの標準文字コードをS...
-
postgreSQLが初期化できないの...
-
PostgreSQLで集約関数をネスト...
-
postgrsqlを別のディレクトリに...
-
phpmyadminで左ペインのメニュ...
-
PostgreSQL インストール先の取得
-
oracle8のアンインストール方法
-
odbc接続処理が遅い
-
ODBCタイムアウトエラー
-
JDBCで配列を使ったSQL文(INSE...
-
LINEのデータtalk.sqliteの閲覧...
-
Illustrator CS3の再インストー...
-
AccessからのPostgreSQLの移行...
-
pgAdminIIIアンインストールに...
-
Access フォーム「使用可能」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLとPostgresの同時使用
-
ORA-12571 パケット・ライター障害
-
autovacuumがメモリ負荷に!
-
443ポートのみが開放できない
-
デフォルトのCLIENT_ENCODINGを...
-
検索結果の件数表示
-
速度差の理由を教えてください。
-
mysqldumpにおけるメモリの使用
-
1台のサーバで2つ同時起動させ...
-
IPアドレスでアクセス制限
-
Oracle10g RACの構成について
-
Oracle 10.2 SE RACにおいて、...
-
RSHコマンドでのsqlplusの起動
-
windows版postgresql 異なるバ...
-
postgresqlの接続ポート5432か...
-
Access フォーム「使用可能」...
-
postgresqlでのトランザクショ...
-
Windows10がインストールできま...
-
大至急!mdfファイルの中身を見...
-
exp、impについて
おすすめ情報