バージョン選択

フォーラム

メニュー

オンライン状況

60 人のユーザが現在オンラインです。 (47 人のユーザが フォーラム を参照しています。)
登録ユーザ: 2
ゲスト: 58
bysk damdam もっと...

PR

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

サイト内検索

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

その他

新規スレッドを追加する

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

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

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

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

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

▼テンプレート
[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
居住地:
投稿: 52
Re: ビューとクエリーはどちらが速いのか?
ビューを予め作るというのが、どういうことをやっているのかイメージしづらいので、DBにビューを保存するところと取り出すところのコードのサンプル出していただくことってできますか?


----------------
ECCUBE3系のインテグレートパートナーとして
カスタマイズやプラグイン開発に専念しています。
ぜひご相談ください。

red
投稿日時: 2017/3/9 19:53
対応状況: −−−
登録日: 2010/2/15
居住地:
投稿: 1044
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
居住地: 大阪
投稿: 1326
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
居住地:
投稿: 58
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
居住地:
投稿: 58
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
居住地:
投稿: 1044
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,352名です
総投稿数は81,247件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1619
4
yuh
1326
5
red
1044
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
778
10
umebius
670
11
tao_s
646
12 sumida 636
13
homan
633
14 karin 609
15 DELIGHT 571
16
468
530
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

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