バージョン選択

フォーラム

メニュー

オンライン状況

51 人のユーザが現在オンラインです。 (39 人のユーザが フォーラム を参照しています。)
登録ユーザ: 3
ゲスト: 48
kggh tattsu h_tanaka もっと...

サイト内検索

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

その他

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
chappy
投稿日時: 2017/3/15 11:41
対応状況: −−−
一人前
登録日: 2011/7/19
居住地:
投稿: 87
Re: ビューとクエリーはどちらが速いのか?
yuhさん

EXPLAINは、今まで使用したことがありませんでした。
早速使って調べています。

LIMITの部分も納得です。

勉強になりました。
本当にありがとうございます。
yuh
投稿日時: 2017/3/14 1:02
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: ビューとクエリーはどちらが速いのか?
EXPLAINで調べていくのがいいと思います。
MYSQLの場合は複合INDEXもそうですが、
JOINする場合に
SELECT
*
FROM
(SELECT * FROM tableA ORDER BY id asc LIMIT 10) a INNER JOIN
tableB b ON(a.id = b.id)

とかFROMの部分でのLIMITなど行うとJOINのコストが下がり速くなります。
色々速くする方法はあるので、調べてみてください。


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


http://ec-lab.net/

chappy
投稿日時: 2017/3/13 19:45
対応状況: −−−
一人前
登録日: 2011/7/19
居住地:
投稿: 87
Re: ビューとクエリーはどちらが速いのか?
tao_sさん
redさん

・MySQLは複合キーの方が早い
・テキストでもインデックスが張れる

有益な情報ありがとうございます。

早速、ちょこちょこインデックスを張っていますが、速くなってきたように思います。
どこで、速度を測定するのが正解なのかも分かっていませんが・・。

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


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

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

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


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

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

ありがとうございます。

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

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

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

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


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

tao_s
投稿日時: 2017/3/10 18:06
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 799
Re: ビューとクエリーはどちらが速いのか?
MySQLでサブクエリを使ってる場合は、viewにした方が早くなったりします。
2系の時にやったヤツ
EC-CUBEをチューニング - MySQL:MySQLでもviewを使って8倍速にするカスタマイズ!!

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


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

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

aoki.uさん

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


redさん

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


yuhさん

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

結局INDEXを考えてクエリを組むことの方が、重要そうですね。そちらの面で見直しを図ってみます。
yuhさんのec-cube2系の速度UPですが、本当に速いですね。商品数が多いのに、驚きました。
これもINDEXや中間テーブルの賜物なのでしょうか??
yuh
投稿日時: 2017/3/9 22:07
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: ビューとクエリーはどちらが速いのか?
VIEWにしてあんまり速度周り期待しない方がいいかと思います。
正直ちゃんとINDEX考えてクエリ組んだり、集計結果の一部を中間テーブルに持って使うとかの方が速いとは思います。
PostgresqlであればMaterializedView使うって方法もありますが、MYSQLには無いので仮想的にトリガーで何とかするとかですかね。


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


http://ec-lab.net/

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


 



ログイン


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

統計情報

総メンバー数は88,689名です
総投稿数は109,935件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1569
9
mcontact
1280
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.