プラグイン > その他 > ビューとクエリーはどちらが速いのか? |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
chappy |
投稿日時: 2017/3/9 19:13
対応状況: −−−
|
一人前 登録日: 2011/7/19 居住地: 投稿: 87 |
ビューとクエリーはどちらが速いのか? プラグインを作成しています。
データベースにビューを予め作って、そこからデータを抽出していますが、速度が遅くなっています。 そこで、少しでも速くする方法を検討しています。 もしかして、その都度クエリーでデータを抽出した方が、予め作ったビューから抽出するよりも早いのでしょうか?? ご存じの方、ご意見いただけるとありがたいです。 ▼テンプレート [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 居住地: 投稿: 53 |
Re: ビューとクエリーはどちらが速いのか? ビューを予め作るというのが、どういうことをやっているのかイメージしづらいので、DBにビューを保存するところと取り出すところのコードのサンプル出していただくことってできますか?
|
red |
投稿日時: 2017/3/9 19:53
対応状況: −−−
|
神 登録日: 2010/2/15 居住地: 東京都 投稿: 1570 |
Re: ビューとクエリーはどちらが速いのか? mysqlのビューはマテリアライズドビューではないので、クエリが遅ければ遅いです
|
yuh |
投稿日時: 2017/3/9 22:07
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: ビューとクエリーはどちらが速いのか? VIEWにしてあんまり速度周り期待しない方がいいかと思います。
正直ちゃんとINDEX考えてクエリ組んだり、集計結果の一部を中間テーブルに持って使うとかの方が速いとは思います。 PostgresqlであればMaterializedView使うって方法もありますが、MYSQLには無いので仮想的にトリガーで何とかするとかですかね。
|
chappy |
投稿日時: 2017/3/10 17:33
対応状況: −−−
|
一人前 登録日: 2011/7/19 居住地: 投稿: 87 |
Re: ビューとクエリーはどちらが速いのか? ありがとうございます。
aoki.uさん 手動でDBにビューを作り使用しています。 redさん 恥ずかしながら、マテリアライズドビューという単語を初めて知りました。 勉強になりました。ありがとうございます。 yuhさん >正直ちゃんとINDEX考えてクエリ組んだり、集計結果の一部を中間テーブルに持って使うとかの方が速いとは思います。 結局INDEXを考えてクエリを組むことの方が、重要そうですね。そちらの面で見直しを図ってみます。 yuhさんのec-cube2系の速度UPですが、本当に速いですね。商品数が多いのに、驚きました。 これもINDEXや中間テーブルの賜物なのでしょうか?? |
tao_s |
投稿日時: 2017/3/10 18:06
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 799 |
Re: ビューとクエリーはどちらが速いのか? MySQLでサブクエリを使ってる場合は、viewにした方が早くなったりします。
2系の時にやったヤツ EC-CUBEをチューニング - MySQL:MySQLでもviewを使って8倍速にするカスタマイズ!! ただ、3系であればほぼview作る意味は無いかなぁと思います。 他の方がおっしゃる通り、テーブル構造とインデックスをちゃんと使う様にするのが一番です。
|
chappy |
投稿日時: 2017/3/10 18:30
対応状況: −−−
|
一人前 登録日: 2011/7/19 居住地: 投稿: 87 |
Re: ビューとクエリーはどちらが速いのか? tao_sさん
ありがとうございます。 今まさに、教えて頂いたブログを検索して読んでいたところでした! お客さんの要望で、新たに追加したテーブルがあったり、カテゴリでのランキングを作ったりとSELECT文がとてもややこしいです。 ですから、私としてはVIEWを使用したかったのですが・・。 >テーブル構造とインデックスをちゃんと使う様にするのが一番です。 とりあえず、まずはこちらを確認したいと思います。
|
tao_s |
投稿日時: 2017/3/11 5:37
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 799 |
Re: ビューとクエリーはどちらが速いのか? 最新のバージョンでは試していませんが、MySQLは複合キーの方が早かったりとインデックスの張り方に少しクセがあります。
あと、EC-CUBEのデフォルトでは、文字列カラムの型がぜんぶtextになっちゃってるので、これだとインデックス張れなくて遅いです。 もし、標準のテーブルとリレーションする様なクエリを発行しているのであれば、結合キーがtext型のカラムになってないか確認してみてください
|
red |
投稿日時: 2017/3/11 8:21
対応状況: −−−
|
神 登録日: 2010/2/15 居住地: 東京都 投稿: 1570 |
Re: ビューとクエリーはどちらが速いのか? 一応貼れますよ
http://qiita.com/mizuki_takahashi/items/52bc426307817123305e
|
tao_s |
投稿日時: 2017/3/13 6:21
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 799 |
Re: ビューとクエリーはどちらが速いのか? あ、ホントだ。いつの間に...
でもjoinとかサブクエリだとやっぱ遅くなる要因みたいですね...
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |