
商品情報が入ったテーブルから、一致した件数を求めて、商品名を一覧表示する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 パケット・ライター障害
-
増設しやすいDBサーバの設計に...
-
MySQLのポートの閉じ方
-
MySQL入門以前の質問
-
postgresqlの接続ポート5432か...
-
■MySQLに詳しい方!xammpについ...
-
ApacheでPHPの動作確認を失敗し...
-
MySQLのインストール 最後でト...
-
Pythonがインスールできない
-
PostgreSQL14.6のSSL対応について
-
WindowsのMySQLとApache2の自動...
-
exp、impについて
-
ユーザ名?パスワード?
-
【至急】MySQLデータベースの削...
-
Access2010のサンドボックスモ...
-
postgresqlでのトランザクショ...
-
mysql workbenchのインストール...
-
odbc接続処理が遅い
-
Geeklogについて
-
ORA-00439について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLとPostgresの同時使用
-
ORA-12571 パケット・ライター障害
-
IPアドレスでアクセス制限
-
443ポートのみが開放できない
-
PostgreSQLのデータ領域のレス...
-
autovacuumがメモリ負荷に!
-
デフォルトのCLIENT_ENCODINGを...
-
ウェブページが見れません(日...
-
レジストリについて
-
PostgreSQLとポート5432
-
vacuum処理を高速化させたい
-
速度差の理由を教えてください。
-
検索結果の件数表示
-
PostgreSQL WALファイルの運用...
-
MySQLのポートの閉じ方
-
デフォルトポート以外の指定の...
-
PostgreSQLとMySQLの同時運用
-
マインクラフト Ver 1.8.9 デフ...
-
1台のサーバで2つ同時起動させ...
-
mysqldumpにおけるメモリの使用
おすすめ情報