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

    私的良スレ書庫

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

    元スレMySQL 総合 Part13

    mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 1064 + - limit + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    651 : NAME IS - 2008/04/23(水) 23:13:59 ID:??? (+57,+29,-5)
    テーブル設計したの俺じゃねーもんっ!
    652 : NAME IS - 2008/04/24(木) 00:32:04 ID:??? (+43,+25,-2)
    も、萌え
    653 : NAME IS - 2008/04/24(木) 09:31:08 ID:??? (+2,-29,-5)
    >>647
    >>649に1票。Datetimeにしたほうが何かと便利じゃね?
    654 : NAME IS - 2008/04/24(木) 11:00:03 ID:??? (+57,+29,-29)
    他で散々使われてるテーブルだからなあ……現状ちゃんと動いてるものを弄りたくないw
    655 : NAME IS - 2008/04/24(木) 14:49:32 ID:6a37T5mr (+91,+29,-191)
    質問です
    ヤフーでもAmazonでも、大きなポータルみたいなサイトを見ると、トップページに
    沢山メニューやカテゴリがあります
    (新着、トピック、ニュース、メール受信数、広告などなど)
    これは、各領域ごとにSQLの読み込みしてるってことかなと思いますが、一ページに
    どの程度リクエスト仕掛けていいんでしょう?
    全部をまとめて1リクエストで済ませてるわけじゃないですよね?
    そんなにいっぱい一気に読み込んで大丈夫なの?って気になりますが、、
    こういうのはメモリとかCPU性能に依存するものなんですか?

    変な質問ですみません 
    今のところ、1ページ1処理はうまく出来てるんですが、負荷を
    沢山かけるものは心配です
    参考になるサイトや書籍などあればそれも教えてください お願いします
    656 : NAME IS - 2008/04/24(木) 14:55:16 ID:??? (+52,+29,-3)
    それがノウハウというやつでして
    658 : NAME IS - 2008/04/24(木) 15:34:13 ID:??? (+49,-30,-49)
    SELECT T1.no, T21cat, T2.name FROM
    (SELECT max(no) AS no, cat FROM table1 GROUP BY cat) T1
    INNER JOIN table1 T2 ON T1.no = T2.no AND T1.cat = T2.cat;

    とか?
    試してないけど。
    659 : 655 - 2008/04/24(木) 15:43:59 ID:6a37T5mr (+64,+29,-31)
    ノウハウってことは社外秘みたいな?
    ごくごく基礎的な考え方について、まとめてる本なんて知りませんか?
    すみません、気になるんです。。
    660 : NAME IS - 2008/04/24(木) 15:50:26 ID:??? (+45,-23,-24)
    ああいうでかいポータルは1アクセス毎に動的にSQLを発行しているのではなく、
    静的HTMLを一度作る時だけSQLを発行しているから無問題。

    SQLの結果をキャッシュしておきたければmemcacheを使え。
    661 : 657 - 2008/04/24(木) 16:00:29 ID:??? (+110,+29,-150)
    >>658
    レス有り難う御座います。
    うおっ結構複雑になってしまいますね・・・
    今から提示して頂いたクエリを一つ一つかみ砕いて勉強してみます。

    >>655
    660さんもおっしゃっているような感じのことがメインですが
    WEB+DB PRESS Vol.42にニコニコ動画の技術記事があります。
    そこにDBとWEBアプリケーションサーバの大規模運用における勘所みたいなことが結構書かれていて
    私は勉強になりました。
    お力になれれば幸いです。
    662 : NAME IS - 2008/04/24(木) 16:29:19 ID:??? (+8,-19,-27)
    分かってると思うけど、T21catはT1.catのtypoね。
    試してみたらうまくいったけど、あんまりいい方法ではないよ。
    あくまで、答がちゃんと出るレベル。
    663 : 658 - 2008/04/24(木) 17:37:55 ID:??? (+3,-30,-21)
    SELECT no, cat, name FROM table1 T1
    WHERE NOT EXISTS(
    SELECT * FROM table1 T2 WHERE T1.cat = T2.cat AND T1.no < T2.no
    );

    とかでもOK
    664 : NAME IS - 2008/04/24(木) 19:47:59 ID:??? (+112,+29,-72)
    >>659
    ノウハウは社外秘まではいかないだろうけど、それが飯の種ってもんです。
    何でも知ってる人に聞いてみましょう。

    本だったらSQLの簡単なものから読んだらいいんじゃないかな。
    MySQLに限らず、RDBMS共通で勉強するといいかも。
    665 : 655 - 2008/04/25(金) 06:21:05 ID:??? (+78,+30,-50)
    >>660
    ありがとうございます、一度読み込んだ後にキャッシュする機能があるんですね
    それが知れただけでもすごく助かりました
    >>661
    本の紹介、ありがとうございます
    ニコニコの仕組みは勉強になりそうですね! ぜひ読んでみたいと思います ありがとう
    >>664
    完全独学でまわりに詳しい人いないのでここで聞かせてもらいました
    またお世話になると思います、よろしくお願いします

    どうもありがとうございました
    668 : NAME IS - 2008/04/25(金) 23:01:57 ID:??? (-5,-23,+0)
    JOIN
    670 : NAME IS - 2008/04/25(金) 23:18:07 ID:??? (+36,-30,-26)
    SELECT * FROM hoge
      INNER JOIN test ON hoge.hoge_id=test.hoge_id

    サブセレしなくても普通にこれでいんじゃないの。
    それとも例題のために削ってるから?
    671 : 666 - 2008/04/25(金) 23:20:34 ID:??? (+95,+29,-42)
    >>670
    例題の為に削っているからです。。
    実際、副問い合わせが必要な時は、そこでCOUNTしたり
    WHEREで抽出した値を出したいから、という理由が多いです。
    673 : NAME IS - 2008/04/27(日) 16:05:58 ID:??? (+38,+26,+0)
    むり
    674 : NAME IS - 2008/04/27(日) 16:24:11 ID:Tqt++e11 (-16,+27,-2)
    >>673
    簡潔な回答ありがとうございます。
    675 : NAME IS - 2008/04/28(月) 00:32:12 ID:??? (+0,-30,-17)
    '2chan' IN (name, category, type)
    676 : NAME IS - 2008/04/28(月) 03:35:46 ID:??? (+36,-30,-63)
    TEXTカラムから
    文字数1000文字区切り、最後の改行
    でデータを取り出したいのですが可能でしょうか?

    できれば1000文字以下で丸めこみたいです

    以下のようにやっては見たのですがどうもすっきりしません。
    よろしくお願いします。
    SELECT
     CONCAT(SUBSTRING(TEXT,1,1000),SUBSTRING_INDEX(SUBSTRING(TEXT,1000,1000),"
    ",1)) AS TEXT
    FROM hoge;
    677 : NAME IS - 2008/04/28(月) 09:10:45 ID:??? (-5,-28,-3)
    >>675
    INはORだろ
    678 : NAME IS - 2008/04/28(月) 10:01:14 ID:??? (+62,+29,-7)
    >>676
    1000文字取り出した後はプログラム側で処理してはいかがでしょう?
    679 : NAME IS - 2008/04/28(月) 12:53:41 ID:??? (+68,+27,-15)
    >>671
    だったら、そういうクエリを示さないと、解決にならない。
    680 : NAME IS - 2008/04/29(火) 16:57:15 ID:??? (+29,-29,-73)
    Windows にインストールしようとしてバイナリを探して
    このページを見たところ
    http://dev.mysql.com/downloads/mysql/5.0.html

    ここだと 5.0.51b しかないようです。
    b は beta の略ですよね?
    beta 無しの一つ前のバージョンはどこでダウンロードできるのでしょうか?
    681 : NAME IS - 2008/04/29(火) 17:23:46 ID:??? (+13,-30,-88)
    >>680
    それはベータじゃない。リリース版。

    ってかいつの間にか5.0.51bになっててきづかなかった。
    5.0.51->5.0.51aの時はSSL絡みのバグ修正だったようだけど、
    今回のChanges探したんだが見つからない。

    bkbitsのほうにも、Enterpriseには5.0.60きてるけど、
    Communityには5.0.51aまでしか記載がない。
    682 : NAME IS - 2008/04/29(火) 17:35:14 ID:??? (+5,-27,-134)
    無償版の「MySQL Community Server」の提供は今後も継続されるが、
    無償版と有償版の開発は完全に切り離されることとなり、
    無償版と有償版の2つのMySQLはまったく別々の進化を遂げることとなる見通しだ。
    683 : 680 - 2008/04/29(火) 18:00:49 ID:??? (+38,-29,-13)
    >>681
    レスありがとうございます。
    http://dev.mysql.com/doc/refman/5.1/ja/choosing-version.html
    ここのバージョンの命名規則に b の意味するところが書いてないようなのですが

    51 -> 51a -> 51b は
    51 -> 52 にするほどでもない細かい修正だと理解して良いのでしょうか?
    684 : NAME IS - 2008/04/29(火) 19:57:40 ID:??? (+95,+29,-46)
    >>683
    その通りです。

    個人的にはbetaを意識させるbをバージョンに含むのには反対ですけどね。
    685 : 680 - 2008/04/29(火) 20:17:13 ID:??? (+67,+26,+1)
    >>684
    なるほど、ありがとうございました。
    687 : NAME IS - 2008/04/29(火) 22:56:35 ID:vsezzVYU (-22,-6,-29)
    mysqlのソースコードの解説したサイトとか書籍とか
    オススメありませんか?

    ググっても出てこないのでお願いします
    688 : NAME IS - 2008/04/30(水) 00:50:20 ID:??? (+89,+29,-15)
    >>687
    俺は読んでないけど…

    http://www.oreilly.co.jp/books/9784873113432/toc.html

    つーか、サイトや書籍を当たるよりもいきなりガシガシ
    ソースコード読んだ方が速いんじゃないか
    689 : NAME IS - 2008/04/30(水) 01:04:19 ID:??? (+57,+29,-2)
    Linuxもいつかは誰かの所有物になるのかな
    690 : NAME IS - 2008/04/30(水) 01:37:43 ID:??? (+57,+29,-5)
    そんときは、別のオープンソースOSがLinuxの代わりになってるよ。
    691 : NAME IS - 2008/04/30(水) 01:41:19 ID:??? (+57,+29,-7)
    Linux は正式にリーナスの物だけど誰も困ってない
    そういう事
    692 : NAME IS - 2008/04/30(水) 01:46:55 ID:??? (+69,+29,-20)
    >>688
    ありがとうございます

    なんと身近な本に普通に載ってたんですね…
    694 : NAME IS - 2008/04/30(水) 17:03:55 ID:??? (+3,-30,-63)
    order byは最後に実行されるから、select句でその情報を取得するのは無理。

    SELECT foo AS '2 foo', bar AS '1 bar' FROM Example
    ORDER BY bar, foo;

    とでもすればいいんじゃないかな?
    695 : NAME IS - 2008/04/30(水) 17:40:27 ID:??? (+3,-30,-208)
    テーブルレイアウトがないので、、、テーブル名が sample_table で、
    プライマリキーは key_a 並べ替えたいカラムを col_a として書きました。

    SELECT
     a.*,
     b.order_num
    FROM
     sample_table a
     JOIN (
      SELECT a.key_a, count(*) AS order_num
      FROM sample_table a LEFT JOIN sample_table b ON
      a.col_a > b.col_a
      GROUP BY a.key_a
     ) b
     USING (key_a)
    ORDER BY a.col_a

    MySQLでの確認はしてませんので、方言が混ざってそうだったら翻訳しといてください
    697 : NAME IS - 2008/04/30(水) 23:38:08 ID:??? (+74,+29,-28)
    列がちゃんと決まってるなら行番号あたりをキーにしたテーブル作って
    COPY句でも作って突っ込めばいけるんじゃない?
    698 : NAME IS - 2008/04/30(水) 23:49:06 ID:??? (+77,+29,-11)
    CSVで保存すれば、取り込める。
    正規化せずに取り込むと後でものすごく後悔しそうないがする。
    700 : NAME IS - 2008/05/01(木) 10:54:47 ID:??? (+5,-13,-4)
    >>699
    PHPのモジュールの問題じゃね?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 1064 + - limit + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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