機能要望 > その他 > MySQL での一覧商品表示の速度向上について |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
hakaselab |
投稿日時: 2009/3/25 23:01
対応状況: −−−
|
半人前 登録日: 2008/9/4 居住地: 広島 投稿: 28 |
Re: MySQL での一覧商品表示の速度向上について お世話になっております。高橋@株式会社システムフレンドです。 seasoft さん、いろいろとありがとうございます。また lucky7 さんも試して下さってありがとうございます。
ちょっとわからないんですが、改行部分とかをつけずにそのまま流してもダメでしょうか(改行をおこなったことでスペースが消えてるとかかもです、ちょっとわからないのですが)? ただ、どうも公式のほうで改善されているみたいですね、なによりです:D また何かあったら、よろしくお願いします。
|
lucky7 |
投稿日時: 2009/3/26 0:31
対応状況: −−−
|
一人前 登録日: 2008/6/2 居住地: 東京近郊 投稿: 101 |
Re: MySQL での一覧商品表示の速度向上について seasoftさん
>別解にて回避できたようですね。 詳細画面の表示は早くなりました^^ ただ、目的の一覧画面の最適化は相変わらずエラーです>< hakaselabさん このたびは貴重な情報ありがとうございます! ただ、残念ながらまだうまく機能させられていません>< 現在のソース "vw_products_allclass" => ' (SELECT pr.product_id ,pl.product_code_min ,pl.product_code_max ,pl.price01_min ,pl.price01_max ,pl.price02_min ,pl.price02_max ,pl.stock_min ,pl.stock_max ,pl.stock_unlimited_min ,pl.stock_unlimited_max ,pr.del_flg ,pr.status ,pr.name ,pr.comment1 ,pr.comment2 ,pr.comment3 ,pr.comment4 ,pr.comment5 ,pr.comment6 ,pr.comment7 ,pr.comment8 ,pr.comment9 ,pr.comment10 ,pr.comment11 ,pr.comment12 ,pr.comment13 ,pr.comment14 ,pr.comment15 ,pr.comment16 ,pr.comment17 ,pr.comment18 ,pr.comment19 ,pr.comment20 ,pr.comment21 ,pr.comment22 ,pr.comment23 ,pr.comment24 ,pr.comment25 ,pr.update_date ,pr.main_list_comment ,pr.main_image ,pr.main_list_image ,pr.product_flag ,pr.deliv_date_id ,pr.sale_limit ,pr.point_rate ,pr.sale_unlimited ,pr.create_date ,pr.deliv_fee ,pc.rank ,cc.rank AS category_rank ,cc.category_id FROM (((SELECT product_id as product_id_sub ,MIN(product_code) AS product_code_min ,MAX(product_code) AS product_code_max ,MIN(price01) AS price01_min ,MAX(price01) AS price01_max ,MIN(price02) AS price02_min ,MAX(price02) AS price02_max ,MIN(stock) AS stock_min ,MAX(stock) AS stock_max ,MIN(stock_unlimited) AS stock_unlimited_min ,MAX(stock_unlimited) AS stock_unlimited_max FROM dtb_products_class GROUP BY product_id ) AS pl LEFT JOIN dtb_products AS pr ON pl.product_id_sub = pr.product_id) LEFT JOIN dtb_product_categories AS pc ON pr.product_id = pc.product_id) LEFT JOIN dtb_category AS cc ON pc.category_id = cc.category_id) ', エラー内容 DB Error: syntax error SELECT DISTINCT product_id FROM (SELECT pr.product_id ,pl.product_code_min ,pl.product_code_max ,pl.price01_min ,pl.price01_max ,pl.price02_min ,pl.price02_max ,pl.stock_min ,pl.stock_max ,pl.stock_unlimited_min ,pl.stock_unlimited_max ,pr.del_flg ,pr.status ,pr.name ,pr.comment1 ,pr.comment2 ,pr.comment3 ,pr.comment4 ,pr.comment5 ,pr.comment6 ,pr.comment7 ,pr.comment8 ,pr.comment9 ,pr.comment10 ,pr.comment11 ,pr.comment12 ,pr.comment13 ,pr.comment14 ,pr.comment15 ,pr.comment16 ,pr.comment17 ,pr.comment18 ,pr.comment19 ,pr.comment20 ,pr.comment21 ,pr.comment22 ,pr.comment23 ,pr.comment24 ,pr.comment25 ,pr.update_date ,pr.main_list_comment ,pr.main_image ,pr.main_list_image ,pr.product_flag ,pr.deliv_date_id ,pr.sale_limit ,pr.point_rate ,pr.sale_unlimited ,pr.create_date ,pr.deliv_fee ,pc.rank ,cc.rank AS category_rank ,cc.category_id FROM (((SELECT product_id as product_id_sub ,MIN(product_code) AS product_code_min ,MAX(product_code) AS product_code_max ,MIN(price01) AS price01_min ,MAX(price01) AS price01_max ,MIN(price02) AS price02_min ,MAX(price02) AS price02_max ,MIN(stock) AS stock_min ,MAX(stock) AS stock_max ,MIN(stock_unlimited) AS stock_unlimited_min ,MAX(stock_unlimited) AS stock_unlimited_max FROM dtb_products_class GROUP BY product_id ) AS pl LEFT JOIN dtb_products AS pr ON pl.product_id_sub = pr.product_id) LEFT JOIN dtb_product_categories AS pc ON pr.product_id = pc.product_id) LEFT JOIN dtb_category AS cc ON pc.category_id = cc.category_id) AS allcls WHERE del_flg = 0 AND status = 1 AND category_id IN ( 416 ) [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS pl LEFT JOIN dtb_products AS pr ON pl.product_id_sub = p' at line 70]
|
seasoft |
投稿日時: 2009/3/26 0:57
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: MySQL での一覧商品表示の速度向上について エラーとなっているSQL文ですが、MySQL 5.0系の環境では正常実行できました。(追加カラム分は削除しています。)
とりあえずご報告まで。
|
lucky7 |
投稿日時: 2009/3/26 1:22
対応状況: −−−
|
一人前 登録日: 2008/6/2 居住地: 東京近郊 投稿: 101 |
Re: MySQL での一覧商品表示の速度向上について と、言う事はMySQLのバージョン差によるエラーの可能性が高いと言うことでしょうか?
|
seasoft |
投稿日時: 2009/3/26 1:27
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: MySQL での一覧商品表示の速度向上について 私はMySQL固有の仕様は深く把握していないので、確率の大小は評価できませんが、少なくとも無関係と断言できる情報は持っていません。
EC-CUBE 抜きで、SQL 文を実行できれば、話しは早いのですが。
|
seasoft |
投稿日時: 2009/3/26 2:04
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: MySQL での一覧商品表示の速度向上について 引用:
先ほど Ver 2.4 系でも高速化のロジックが実装されたようなので、何か参考になる部分があるかも。 あっ・・・ 差し戻されました。 http://svn.ec-cube.net/open_trac/changeset/17930
|
miruku |
投稿日時: 2009/3/26 11:21
対応状況: −−−
|
新米 登録日: 2009/3/9 居住地: 投稿: 6 |
Re: MySQL での一覧商品表示の速度向上について こんにちは。
私も同様にログを見るとDB Error: syntax error になっていました。 見た目には「システムエラーが発生しました」の画面が表示されて動作しませんでした。 トップページに「おすすめ商品」のブロックをレイアウトしていますが、ブロック部分に「システムエラーが発生しました」の画面が表示されます。 商品のカテゴリーをクリックすると、「システムエラーが発生しました」の画面になります。 lucky7さん同様、SQLのバージョンの問題でしょうか? EC-CUBEバージョン 2.2.0-beta PHPバージョン PHP 4.4.9 DBバージョン MySQL 4.1.22 |
seasoft |
投稿日時: 2009/3/26 13:02
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: MySQL での一覧商品表示の速度向上について 同様に MySQL 4 環境ですね。そうなると、バージョン依存の確率は高まりますね。
もしや、JOIN が相関と見なされているとか・・・ <ぼそ>MySQL 嫌い</ぼそ> WHERE で書き換えれば対応できそうです。パフォーマンス面で不安がありますが・・・^^;
|
hakaselab |
投稿日時: 2009/3/26 14:23
対応状況: −−−
|
半人前 登録日: 2008/9/4 居住地: 広島 投稿: 28 |
Re: MySQL での一覧商品表示の速度向上について お世話になっております。高橋@株式会社システムフレンド
miruku さんも試していただいたみたいで、ありがとうございます。 AS pl LEFT JOIN dtb_products ... で AS pl と LEFT の部分が、空白がないようにも思えるのですが、んータブなので、掲示板にはっつけたときにおちてるだけでしょうか。 ちょっと AS pl と LEFT の部分を改行ではなく、スペースでやってみてもらってもいいですか? すいませんが、 MySQL 4.x については今ためす環境がないので実行できません。ごめんなさい。
|
seasoft |
投稿日時: 2009/3/26 14:52
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: MySQL での一覧商品表示の速度向上について 引用:
AS pl LEFT JOIN dtb_products ... 改行が入っており、エラー文上も正しく改行と認識されているようなので、問題ないとは思いますよ。 少なくとも、MySQL 5 では大丈夫でした。 「MySQL 4 は改行を認識できない」といった、特殊事情がある確率を否定することはできませんが・・・
|
« 1 (2) 3 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |