バージョン選択

フォーラム

メニュー

オンライン状況

46 人のユーザが現在オンラインです。 (39 人のユーザが フォーラム を参照しています。)
登録ユーザ: 2
ゲスト: 44
chappy ks-d-k もっと...

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

プラグイン > その他 > ビューとクエリーはどちらが速いのか?

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
chappy
投稿日時: 2017/3/9 19:13
対応状況: −−−
常連
登録日: 2011/7/19
居住地:
投稿: 49
オンライン
ビューとクエリーはどちらが速いのか?
プラグインを作成しています。

データベースにビューを予め作って、そこからデータを抽出していますが、速度が遅くなっています。

そこで、少しでも速くする方法を検討しています。

もしかして、その都度クエリーでデータを抽出した方が、予め作ったビューから抽出するよりも早いのでしょうか??

ご存じの方、ご意見いただけるとありがたいです。

▼テンプレート
[EC-CUBE] 3.0.10
[レンタルサーバ] ロリポップ
[OS] windows8.1
[PHP] 5.5(7.1にアップグレードする予定あり)
[データベース] mysql 5.6


----------------

aoki.u
投稿日時: 2017/3/9 19:19
対応状況: −−−
常連
登録日: 2017/2/19
居住地:
投稿: 45
Re: ビューとクエリーはどちらが速いのか?
ビューを予め作るというのが、どういうことをやっているのかイメージしづらいので、DBにビューを保存するところと取り出すところのコードのサンプル出していただくことってできますか?


----------------
エンジニアです!
ECCUBEのカスタマイズやプラグイン開発に専念しています。ご相談ください。

red
投稿日時: 2017/3/9 19:53
対応状況: −−−
登録日: 2010/2/15
居住地:
投稿: 1042
Re: ビューとクエリーはどちらが速いのか?
mysqlのビューはマテリアライズドビューではないので、クエリが遅ければ遅いです


----------------
EC-CUBEのカスタマイズ承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

yuh
投稿日時: 2017/3/9 22:07
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1317
Re: ビューとクエリーはどちらが速いのか?
VIEWにしてあんまり速度周り期待しない方がいいかと思います。
正直ちゃんとINDEX考えてクエリ組んだり、集計結果の一部を中間テーブルに持って使うとかの方が速いとは思います。
PostgresqlであればMaterializedView使うって方法もありますが、MYSQLには無いので仮想的にトリガーで何とかするとかですかね。


----------------
ec-cube2系の速度UPしてみました。(商品数:100万件)
http://speedtest2.ec-lab.net/products/list.php?category_id=15
ec-cube2系最速!(自称)

chappy
投稿日時: 2017/3/10 17:33
対応状況: −−−
常連
登録日: 2011/7/19
居住地:
投稿: 49
オンライン
Re: ビューとクエリーはどちらが速いのか?
ありがとうございます。

aoki.uさん

手動でDBにビューを作り使用しています。


redさん

恥ずかしながら、マテリアライズドビューという単語を初めて知りました。
勉強になりました。ありがとうございます。


yuhさん

>正直ちゃんとINDEX考えてクエリ組んだり、集計結果の一部を中間テーブルに持って使うとかの方が速いとは思います。

結局INDEXを考えてクエリを組むことの方が、重要そうですね。そちらの面で見直しを図ってみます。
yuhさんのec-cube2系の速度UPですが、本当に速いですね。商品数が多いのに、驚きました。
これもINDEXや中間テーブルの賜物なのでしょうか??
tao_s
投稿日時: 2017/3/10 18:06
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 646
Re: ビューとクエリーはどちらが速いのか?
MySQLでサブクエリを使ってる場合は、viewにした方が早くなったりします。
2系の時にやったヤツ
EC-CUBEをチューニング - MySQL:MySQLでもviewを使って8倍速にするカスタマイズ!!

ただ、3系であればほぼview作る意味は無いかなぁと思います。
他の方がおっしゃる通り、テーブル構造とインデックスをちゃんと使う様にするのが一番です。


----------------
EC-CUBEカスタマイズ相談してください。
緊急のEC-CUBEの障害対応
EC-CUBE開発ブログ

chappy
投稿日時: 2017/3/10 18:30
対応状況: −−−
常連
登録日: 2011/7/19
居住地:
投稿: 49
オンライン
Re: ビューとクエリーはどちらが速いのか?
tao_sさん

ありがとうございます。

今まさに、教えて頂いたブログを検索して読んでいたところでした!

お客さんの要望で、新たに追加したテーブルがあったり、カテゴリでのランキングを作ったりとSELECT文がとてもややこしいです。
ですから、私としてはVIEWを使用したかったのですが・・。

>テーブル構造とインデックスをちゃんと使う様にするのが一番です。

とりあえず、まずはこちらを確認したいと思います。


----------------

tao_s
投稿日時: 2017/3/11 5:37
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 646
Re: ビューとクエリーはどちらが速いのか?
最新のバージョンでは試していませんが、MySQLは複合キーの方が早かったりとインデックスの張り方に少しクセがあります。

あと、EC-CUBEのデフォルトでは、文字列カラムの型がぜんぶtextになっちゃってるので、これだとインデックス張れなくて遅いです。
もし、標準のテーブルとリレーションする様なクエリを発行しているのであれば、結合キーがtext型のカラムになってないか確認してみてください


----------------
EC-CUBEカスタマイズ相談してください。
緊急のEC-CUBEの障害対応
EC-CUBE開発ブログ

red
投稿日時: 2017/3/11 8:21
対応状況: −−−
登録日: 2010/2/15
居住地:
投稿: 1042
Re: ビューとクエリーはどちらが速いのか?
一応貼れますよ
http://qiita.com/mizuki_takahashi/items/52bc426307817123305e


----------------
EC-CUBEのカスタマイズ承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

tao_s
投稿日時: 2017/3/13 6:21
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 646
Re: ビューとクエリーはどちらが速いのか?
あ、ホントだ。いつの間に...
でもjoinとかサブクエリだとやっぱ遅くなる要因みたいですね...


----------------
EC-CUBEカスタマイズ相談してください。
緊急のEC-CUBEの障害対応
EC-CUBE開発ブログ

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

 



ログイン


EC-CUBEガイドブック

統計情報

総メンバー数は19,266名です
総投稿数は80,724件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1619
4
yuh
1317
5
red
1042
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
778
10
tao_s
646


ネットショップの壺

EC-CUBEガイドブック
Copyright© LOCKON CO.,LTD. All Rights Reserved.