のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,908人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ【PHP】フレームワーク CakePHP 3ホール目【本命】

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    401 : nobodyさん - 2008/03/28(金) 09:29:46 ID:??? (+44,+29,-241)
    >>390
    まさしくそのtickets通りです
    CakePHPは隣り合ったアソシエーション間ではJOINを繋いでSQLワンコールに最適化してくれますが
    それ以上のテーブルをまたいだ関係を持とうとすると途端にクエリ量が増えてしまいます

    個人的にrecursiveでアソシエーションの深度を指定する考え方は
    好感が持てるのですが、負荷の高さを考えると使用をためらわざるを得ません

    サブクエリをインテリジェントに挿入しろとは言いませんが
    今回の様な使用頻度の高いと思われる(かつ、割と実装の想像しやすい)処理ならば
    既に解決された方がいらっしゃるのかと質問に至りました

    --
    先ほどContainableBehaviorを試してみましたがクエリ量は変わりませんでした
    やはりコアに直接手を加えないといけないようですね(´・ω・`)
    402 : nobodyさん - 2008/03/28(金) 10:01:46 ID:??? (-25,-30,-154)
    A→Bのクエリ発行したときに
    モデルにB→Aのアソシエーションも記述してあると
    B→Aのクエリも発行される
    だから
    A→B→C→D のようなのをそのままやっちゃうと
    えらいことになる

    だから、いらいないアソシエーションはunbindModelでぶった切る

    あと、1.2だと発行クエリが1.1より最適化されている
    (つまり、少なくなってるってこと)
    403 : nobodyさん - 2008/03/28(金) 10:11:39 ID:??? (+40,+29,-35)
    >>397
    明らかにアンチじゃない奴のほうがたち悪いぞ。質問者叩いてるのもそう。

    >>402
    >>401の問題解決にはならないんじゃない。B->Aのアソシエーションがなくても起こるから。

    >>401
    DBにview作れば早いと思うよ。
    404 : nobodyさん - 2008/03/28(金) 10:15:32 ID:??? (+25,+29,-29)
    質問があまりにもバカすぎて・・・
    レベル低いよな。
    ここでアフォみたいな質問してるやつは
    CakePHPでサイト構築したことあるのかと聞きたいよ

    405 : nobodyさん - 2008/03/28(金) 10:19:27 ID:??? (+30,+29,-34)
    あまりにもバカみたいな質問にバカみたいな回答が多すぎ
    もっと常識レベルでの会話して欲しいな
    駄文ばっかで何の役にも立たないよ
    406 : nobodyさん - 2008/03/28(金) 10:27:40 ID:??? (+32,+29,-15)
    >>405
    それそのまま>>405に当てはまるのわかる?
    407 : nobodyさん - 2008/03/28(金) 10:30:15 ID:??? (+22,+29,-1)
    もっと常識的な質問たのむ
    408 : nobodyさん - 2008/03/28(金) 10:36:03 ID:??? (+14,+26,-1)
    かわいそうに
    409 : nobodyさん - 2008/03/28(金) 10:57:56 ID:??? (+36,+29,-101)
    バッチ処理で長くかかる処理をやるのなら話は別だけど
    ウェブアプリなんて画面に表示する少ないデータを
    表示するだけなんだからJOINしなくてもいいと思うんだけどね。
    どうせ複雑なJOINならJOINするのにも負荷かかるわけだし。

    ま、パフォーマンスと開発効率のトレードオフ。
    どうしても必要なら、モデルに専用の検索メソッドでも作って
    自分でクエリー書けばいいんじゃない?
    410 : nobodyさん - 2008/03/28(金) 11:00:25 ID:??? (+22,+29,-1)
    もっと常識的な質問たのむ
    411 : nobodyさん - 2008/03/28(金) 11:03:37 ID:q/btZ3WH (+38,+29,-37)
    アンチがしつこくネガティブキャンペーンするのも
    CakePHPが人気になって普及してきた証拠かなぁw

    アンチじゃない人はIDだすようにするか?
    そうすればID出していない人はアンチってわかるし。
    出したら出したで削除できるしw
    412 : nobodyさん - 2008/03/28(金) 11:10:07 ID:??? (+27,+29,-13)
    アンチを勘違いしてると思うが
    いい質問には、マナーをもって接するが
    ろくでもないレスばっかりだからな
    413 : nobodyさん - 2008/03/28(金) 11:13:12 ID:??? (+38,+29,-5)
    >>411
    自治厨乙。
    だいたいにして、IDなんていつでも変えれるんだから意味ないじゃん。
    414 : nobodyさん - 2008/03/28(金) 11:14:01 ID:??? (+27,+29,-10)
    ろくでもないレスは無視するかマナーをもって
    訂正を促すのが良い返答の仕方だよ。
    415 : nobodyさん - 2008/03/28(金) 11:14:44 ID:q/btZ3WH (+36,+29,+1)
    >>413
    やってみなきゃわからないじゃんw
    416 : nobodyさん - 2008/03/28(金) 11:17:51 ID:??? (+26,+28,+0)
    >>415
    どんだけ必死なんだよw
    417 : nobodyさん - 2008/03/28(金) 11:57:59 ID:anJTbKap (+67,+29,-189)
    >>409
    もちろん速度を重視しなくてはならない場面ならば専用メソッド内でSQLを書きます
    しかし、上記の様にシンプルなアソシエーションすら動作が怪しいとなると
    フレームワーク自体に手を出して最適化させた方がコスト的にベターかなと思います

    >>403
    複雑なアソシエーションのパターンが出来上がってる時はView使った方がいいですね
    今ふと考え付いたのですが、結合済みの仮想テーブルを作って、それを元に
    CakePHP側のモデルを構築するアプローチは面白いかもしれません

    #仮想テーブルへの更新作業はDB依存のため怪しい臭いはしますが
    418 : nobodyさん - 2008/03/28(金) 12:20:53 ID:??? (+29,+29,-64)
    >>417
    負荷を考えるならフレームワークやめろ
    CakePHPなんてのは、どうでもいいクライアントに高速納品するための道具てことに気づけよバカ
    419 : nobodyさん - 2008/03/28(金) 12:26:48 ID:??? (+34,+29,-42)
    >>417
    今頃フレームワークの評価とか手を出すとか、どんだけ遅れてんだよ
    この業界は進歩が早いの知ってる?
    420 : nobodyさん - 2008/03/28(金) 12:43:39 ID:??? (-6,+29,-110)
    >>417
    > 結合済みの仮想テーブルを作って、それを元にCakePHP側のモデルを構築する
    view作ればって言ったのはそういうこと。
    面白いかどうかはおいといて、現状の打開策としてはアリかなと思うわけです。

    > 仮想テーブルへの更新作業はDB依存のため怪しい臭いはしますが
    このDB依存は仕方ないと割り切ればいいんじゃないかな。割り切れるところだと思うし。
    421 : nobodyさん - 2008/03/28(金) 12:49:51 ID:??? (+35,+29,-14)
    >>417
    やる前にあれこれ聞かずにやってみろよ
    こんなとこで解決できれば苦労しねーよクソが
    422 : nobodyさん - 2008/03/28(金) 12:53:20 ID:??? (+27,+29,-39)
    評価なんてソース解析して自分で実際にサイト構築しないとわからねーよ
    やってくうちに想像しない難点が沢山でてくるよ

    423 : nobodyさん - 2008/03/28(金) 13:01:42 ID:??? (+34,+28,-4)
    >>417
    速度重視とか柔軟性考えるならCIにしろや
    424 : nobodyさん - 2008/03/28(金) 13:04:47 ID:??? (-22,+29,-46)
    CakePHPを最適化させにくいフレームワーク
    最適化したいならCIスレにいって、このスレからでていけや
    425 : nobodyさん - 2008/03/28(金) 13:28:19 ID:??? (+33,+30,+0)
    426 : nobodyさん - 2008/03/28(金) 13:34:05 ID:??? (+26,+25,-58)
    っていうかJOINにならないというのは
    どのフレームワークでも同じこと。
    CIでもSymfonyでもRubyOnRailsでも同じだよ。

    特にCIは最悪だね。いろんな意味で。
    ここではすれ違いだから言わないけど。
    427 : nobodyさん - 2008/03/28(金) 13:40:13 ID:??? (+0,-2,-31)
    >>426
    どのフレームワークも同じなら軽量でサクサク動作するCIの方がマシ
    428 : nobodyさん - 2008/03/28(金) 13:44:02 ID:??? (+0,+30,-242)
    >>417
    > しかし、上記の様にシンプルなアソシエーションすら動作が怪しいとなると

    シンプルではないよ。

    CakePHPでもその他でもそうだけどO/Rマッピングというのは
    従来の表形式の使いづらいリレーショナルデータベースを
    高レベルに扱いやすく使えるようにするもの。

    リレーショナルデータベースを基本に設計されたものではなく
    より理想的なオブジェクト指向風なデータ構造をもとに設計されたもの。
    だからいろんな取り出し方ができる出来る柔軟性がある。

    たとえば、behaviorでデータ挿入・取り出し時に色んな処理をかませられる。

    そういう柔軟性を持たせながらシンプルなSQLに置き換えるのは容易ではない。
    不可能な場合すらある。

    なんでもかんでもパフォーマンスを気にして無駄なものを作るのは
    初心者のやること。一日働いて3万円人件費をかけるのなら、
    その3万円でスペックをあげたほうが総合的に考えてメリットが
    高いという時代だから、今は。
    429 : nobodyさん - 2008/03/28(金) 13:50:03 ID:??? (+33,+29,-67)
    CIはデータベースを使わない。使う頻度が少ない場合にはいいけど、
    データベースを使う場合、貧弱だよな。

    あれならSQL直書きした方がいいってほどメソッドがアホらしいしw
    なによりビヘイビアが無いのが一番痛い。
    430 : nobodyさん - 2008/03/28(金) 13:50:47 ID:??? (+34,+29,-59)
    >>428
    なんでもかんでもパフォーマンスを気にして無駄なものを作るのは
    初心者のやること

    サイトリニューアルなど
    既存ユーザーが多数いる自社製品ならパフォーマンスを意識する

    431 : nobodyさん - 2008/03/28(金) 13:52:21 ID:??? (+3,+0,-36)
    > 既存ユーザーが多数いる自社製品ならパフォーマンスを意識する
    マシンスペックを上げろ
    432 : nobodyさん - 2008/03/28(金) 13:54:32 ID:??? (-5,-7,-31)
    >>429
    複雑なアソシエーションはSQL直書きになるんならCIが理にかなってる

    433 : nobodyさん - 2008/03/28(金) 13:55:17 ID:??? (+27,+29,-2)
    複雑なものじゃなくてシンプルにしようと考えような。
    434 : nobodyさん - 2008/03/28(金) 13:55:42 ID:??? (-28,-29,-19)
    >>426
    symfony(というかpropel)はJOINになる
    435 : nobodyさん - 2008/03/28(金) 13:56:08 ID:??? (+32,+29,-3)
    >>431
    ユーザーが増えるたびに、どんだけマシンが必要になるんだよ
    436 : nobodyさん - 2008/03/28(金) 13:56:12 ID:??? (+32,+29,-23)
    JOIN使わないで一回一回よんでも
    パフォーマンスはたいして変わんないんだけどなw
    437 : nobodyさん - 2008/03/28(金) 13:57:04 ID:??? (+43,+29,-40)
    >>435
    ユーザーが増えると重くなるのはどれでも一緒ですが?

    働いていない人は、人件費というコストを計算に入れないからなぁw
    まあ、がんばれやw
    438 : nobodyさん - 2008/03/28(金) 13:57:54 ID:??? (+25,+27,-2)
    >>436
    変わるよ あほか
    439 : nobodyさん - 2008/03/28(金) 13:57:57 ID:??? (+10,+12,-15)
    SQL直書きになる機会が多いならCIがいい
    440 : nobodyさん - 2008/03/28(金) 13:58:21 ID:??? (-4,-2,-34)
    O/Rというのはリレーショナルデータベースからの
    脱却に意味があるというのに、今時SQLなんて低レベルなことやるかよw
    441 : nobodyさん - 2008/03/28(金) 13:58:54 ID:??? (+38,+29,-8)
    >>437
    ずっと開発してるわけじゃねーからw
    人件費とか1回ぽっきりやん
    442 : nobodyさん - 2008/03/28(金) 14:00:15 ID:??? (-26,-29,-28)
    複雑なSQLならO/Rマッピング使えないじゃん
    今のCakePHPなら
    だったらCIでSQL直書きが最高よ
    443 : nobodyさん - 2008/03/28(金) 14:03:25 ID:??? (+38,+29,-89)
    >>437
    重くなりかたが異なってくるんですが?

    1回で済む処理を2回のクエリで行ってるとアクセス数が増えたときにクエリ発行数が大きく変わることがわかんない?
    ほんとにプログラマなのか?まぁ、がんばれや
    444 : nobodyさん - 2008/03/28(金) 14:05:37 ID:??? (+38,+29,-36)
    ぷw 頭固いな。mixiの話とかしらんのかいな

    mixiでは”高負荷に耐えるためにJOINを使っていない”んだよ。

    http://www.google.co.jp/search?hl=ja&rlz=1T4GGIH_jaJP221JP221&q=MIXI+MYSQL+JOIN+%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3&lr=

    445 : nobodyさん - 2008/03/28(金) 14:07:29 ID:??? (+30,+29,-93)
    >>442
    使えていますが? JOINが使われないってだけでしょうが。

    パフォーマンスに問題が無い場所で、
    複雑なSQLを、SQLを書かずに作れる(買いても作れる)CakePHPと、
    SQLを書くのと同等の手間をかけなければならないCIでは
    どちらが優れているかは言うまでも無く、CakePHPですね。
    446 : nobodyさん - 2008/03/28(金) 14:08:18 ID:??? (+33,+29,-4)
    >>441
    マシンスペックを上げるのも一回ぽっきりですが?
    448 : nobodyさん - 2008/03/28(金) 14:11:24 ID:??? (-28,-29,-49)
    >>445
    複雑なSQLを、SQLを書かずに作れる(買いても作れる)CakePHP

    group byとかどうやんの?
    449 : nobodyさん - 2008/03/28(金) 14:12:45 ID:??? (+25,+23,-31)
    >>445
    複雑なSQLを、SQLを書かずに作れる(買いても作れる)CakePHP

    この発言無理がありすぎやろw
    450 : nobodyさん - 2008/03/28(金) 14:13:42 ID:??? (+38,+29,-15)
    >>444
    あのさ、読解力なさすぎ。
    「高負荷に耐えるためにJOINを使っていない」とは書いてない。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について