バージョン選択

フォーラム

メニュー

オンライン状況

67 人のユーザが現在オンラインです。 (55 人のユーザが フォーラム を参照しています。)
登録ユーザ: 2
ゲスト: 65
tattsu sin99 もっと...

サイト内検索

質問 > フロント機能 > MySQLが遅いのですが

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
honma
投稿日時: 2007/8/26 7:41
対応状況: −−−
常連
登録日: 2007/7/15
居住地:
投稿: 44
MySQLが遅いのですが
いつもありがとうございます。

今度は8000件ほどの商品をUPしましたら表示が異常に遅くなってしまいました。カテゴリをクリックすると表示されるまで30秒くらいかかってしまいます。

一応、my.iniをいじってバッファーやキャッシュをいじったら2回目のアクセスからは普通に早くなりましたが、DBはec-cubeだけではないのでほかのプログラムがDBにアクセスするとキャッシュがなくなってしまいますので根本的な解決になっていません。

マシンが非力なのもあるかもしれませんがカテゴリの件数に関係なく時間がかかります。テキストを読んでいるようにHDDが回っています。

何か解決方法がありますでしょうか。

MySQLのマシンスペック
Celeron2.6GHz
HDD:SATA150 80G
メモリー:1G
OS:Windows2000Server















nanasess
投稿日時: 2007/8/26 11:08
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: MySQLが遅いのですが
大河内です.

開発コミッターML の下記スレッドは参考になりますか?
http://webml.ec-cube.net/comu-ml/200706/msg00011.html
http://webml.ec-cube.net/comu-ml/200707/msg00000.html

また, 性能を重視する場合, Windows Server + MySQL という選択は, どうなのでしょうか.

# 個人的には, UNIX系の OS 以外考えられないのですが. . .

OS や, DB を選択する場合において, 下記URLも参考になると思います.
http://uyota.asablo.jp/blog/2006/10/29/578799
http://www.lockon.co.jp/blog/database/mysqlpostgresql1.html
honma
投稿日時: 2007/8/26 19:07
対応状況: −−−
常連
登録日: 2007/7/15
居住地:
投稿: 44
Re: MySQLが遅いのですが
大河内さん、ありがとうございます。

>また, 性能を重視する場合, Windows Server + MySQL という選択は, どうなのでしょうか.。
その通りだと思います。(^^ゞ
ちょっと事情がありまして、、、でも、Linuxに変更予定です。


>開発コミッターML の下記スレッドは参考になりますか?
規格は大量には設定していませんが、SQL文を変更しなければならないことなんですね(^^ゞ

できれば、SQL文の変更なしで何とかしたかったのですが。。

でも、8000件程度でパフォーマンスに影響が出るものでしょうか。


nanasess
投稿日時: 2007/8/26 21:34
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2314
Re: MySQLが遅いのですが
大河内です.

引用:

honmaさんは書きました:

>開発コミッターML の下記スレッドは参考になりますか?
規格は大量には設定していませんが、SQL文を変更しなければならないことなんですね(^^ゞ

できれば、SQL文の変更なしで何とかしたかったのですが。。


EC-CUBE は, 複雑な SQL を多用するため, チューニングの一例として上げたまでなので, コミッターML の方法が有効かどうかわかりません.

引用:

でも、8000件程度でパフォーマンスに影響が出るものでしょうか。


Windows で MySQL を使ったことがないため, どこがボトルネックになっているか予想がつかず, 申し訳ないです.
しかし, キャッシュまわりのチューニングで改善したということなので, 複雑な SQL が悪さをしているのではないかと思ったまでです.

何がボトルネックになっているかは, 精査してみないとわかりませんね. . .
drednote
投稿日時: 2007/8/27 3:45
対応状況: −−−
常連
登録日: 2007/7/30
居住地: 滋賀
投稿: 41
Re: MySQLが遅いのですが
blocのカテゴリをクリックし、list.phpを呼び出した時の動作ですが、

1.カテゴリIDに基づいて、そのカテゴリとそのカテゴリの子カテゴリに属する商品の数をカウントするSQL文を発行
2.その数を基にして総ページ数を割り出し、表示するページのリストを取得するSQL文を発行

の2回のSQL発行が行われており、1回目の総数のカウントがそれなりの時間
かかる印象を受けています。
また、デフォルトの状態では商品の画像データは全て同一のディレクトリにアップされる為
商品点数が8000点になるとリスト用、詳細用、(もしあれば)拡大用の3点*8000で
24000ファイルが同一のディレクトリに置かれる事になります。
Windowsのファイル管理システムだと24000ものファイル数が同一ディレクトリに
存在していると目的のファイルを見つけるまでにそれなりの時間が掛かるのではないかと思います。
(もしかしたら最新のNTFSとかではかなり改善されているのかもしれませんが、昔のファイルシステムだとそうでした)

個人的な実験では、まず第1のDBの問題についてはMySQLではなくPostgreSQL8.2以降で
動作させるとWindowsではかなりの動作速度改善効果を確認しています。
Linuxで動作させるとMySQLとPostgreSQLでの動作速度にあまり差は無かったのですが、
Windowsでは明らかにPostgreSQLの方が速かったです。
また、第2の問題については私は画像をアップするシステムを少し変更し、
画像を置く場所をディレクトリ指定出来るようにしてディレクトリ内ファイル数を
増やしすぎないように配慮してみました。

DBを使うアプリがEC-CUBEだけではないという事で、システムの変更は簡単には行かないだろうとは
思いますが、参考までに。
というか、キャッシュやバッファなどを弄って早くなったのであればサーバーを独立させる事も
視野に入れなければならないのではないかとも思いますが。
honma
投稿日時: 2007/8/27 6:17
対応状況: −−−
常連
登録日: 2007/7/15
居住地:
投稿: 44
Re: MySQLが遅いのですが
drednoteさん、大河内さんありがとうございます。

説明不足ですいません。WEBサーバーはREDHAT9です。

>1回目の総数のカウントがそれなりの時間かかる印象を受けています。
そうですかー。やっぱりSQL文をいじらないといけないですか。

>Linuxで動作させるとMySQLとPostgreSQLでの動作速度にあまり差は無かった
REDHATのトライサーバーがありますので実験的にそこに乗せてみます。DBの移動の結果をできれば今日中に報告させていただきます。

あと、2,3日中にメモリを4Gにする予定です。












zekuzeku
投稿日時: 2007/8/27 22:26
対応状況: −−−
常連
登録日: 2007/8/1
居住地:
投稿: 43
Re: MySQLが遅いのですが
あまり参考にしにくい意見かとは思いますが、同じ商品件数でも何十個もあったカテゴリ数を数点にまで減らしたら、カテゴリ表示が一気に高速化したことがありました。
よろしければご参考下さい。
honma
投稿日時: 2007/8/28 6:23
対応状況: −−−
常連
登録日: 2007/7/15
居住地:
投稿: 44
Re: MySQLが遅いのですが
zekuzekuさんありがとうございます。

いちカテゴリを数点はちょっと無理です。すいません。m(__)m
なぜかページをめくるのも重いのです。

今、LINUXにMySQLをインストールしているのですがちょっと手こずっています。

よろしくお願いします。















honma
投稿日時: 2007/8/28 13:16
対応状況: −−−
常連
登録日: 2007/7/15
居住地:
投稿: 44
Re: MySQLが遅いのですが
皆様お世話になります。

LINUXへのインストールが完了しまして試して見ましたが
体感速度はほとんど変わりませんでした。25秒くらいかかります。

メモリが届きまして挿して見たのですが相性が合わないらしく
起動しませんでした。ザンネン!!

カテゴリ表示のSQL文が書いてあるところを教えていただけませんでしょうか。

よろしくお願いします。






drednote
投稿日時: 2007/8/28 15:59
対応状況: −−−
常連
登録日: 2007/7/30
居住地: 滋賀
投稿: 41
Re: MySQLが遅いのですが
カテゴリblocをクリックした際にはlist.phpが呼ばれるわけですが、
list.phpの使用しているビューはvw_products_allclassとなっています。
で、これの定義ですがPostgreSQLとMySQLでは別の場所にあるんですが、
MySQLの方はdata/conf/conf.phpの最後の方に纏めて定義があります。
ここのSQL文をいじればMySQLの方は変更出来ます。
PostgreSQLの方はインストール後だとDBに定義してあるビューを直接
使用するので、DBの方で弄らなければいけません。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,276名です
総投稿数は110,071件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1301
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.