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

    元スレMySQL 総合 Part20

    mysql覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    501 = :

    temporaryが遅いとな。
    ストレージエンジンはMYISAM、MEMORY?

    テンポラリーテーブルに限った話ではないけれど
    InooDBPlugingが標準になったので
    初期状態で立ち上げると確かに重くはなってる気がしますね。
    (DEFAULT_STORAGE_ENGINEは相変わらずMISAM?だけど)

    今のハードに併せてきたんじゃないかなと予想。

    503 = :

    結局皆MySQL5.5導入してるの?
    俺は一応Linuxにcmakeでインストールして単純な動作確認だけはしたけど、まだ5.1使ってる
    マイナーだろうけどmMeasure使ったりしてるんで
    これ5.0、5.1、とインストール方法が変わるので、おそらく5.5では利用できないんだろうなと思って
    cacti、munin等は試していないけれど
    あと、バージョンの問題だったかもしれないけれど、ソースからインストール後起動時に何度かエラーが出て解決できなかった事もあった
    5.1では一度も無かったけれど

    504 = :

    500です。
    チェーン店の日別店別の商品売り上げテーブルなんだが、

    date date
    store_id smallint
    item_id mediumint
    sales mediumint

    って感じ。
    10店舗くらいあって、指定商品が各店の売上ランキング何位にあるのかを割り出すのに

    指定期間の商品別の売上順に集計したtemporary tableを作って
    @i=0;
    create temporary table `t1` select (@i:=@i+1)as`rank`,SUM(`sales`)as`sales`,`item_id` form `table` where `date` between 'A' and 'B' and store_id=1 group by `item_id` order by `sales` desc;
    って感じで。
    で、そこから指定のitem_idを条件に rank を出す。
    これを店舗回繰り返す。

    505 = :

    テンポラリテーブル作成を繰り返すから、5.1よりめちゃめちゃ時間かかってしまった。
    5.1だと1秒未満で5.5だと5秒以上かかった。

    日付指定が変動したり、カテゴリで絞ったりで、事前に値を出しておけないので、このようなことをしてたけど、
    今は日付の期間指定させないで、日別、週別、月別のサマリテーブルに順位いれて、そこから選ばせるようにしてる。

    まぁ、設計や方法がアホだったと思うけど、ようは5.5のテンポラリーテーブルは遅い、ってのはここで強く感じたわけです。

    ちなみに、5.1、5.5ともにInnoDB plugin でbuffer poolは5GBくらい。
    tmp_table_sizeもmax_heap_table_sizeも 512MBくらい割り当ててた。

    506 = :

    5.5のテンポラリーテーブルが遅いってのは本当なのか?
    何か回避策があるんじゃないのか?

    507 = :

    OSとファイルシステムは同じ?

    508 = :

    >>504
    indexの付け方が悪いんだろ。

    509 = :

    >>507
    ファイルシステムはubuntuだとext4で、
    Macはデフォルトです。

    >>508
    Indexは、
    date=index
    store_id,date=index
    item_id,date,store_id=primary
    にそれぞれついてます。

    たとえなにかおかしくても、5.1と5.5でまったく同じ環境でやってるので、
    どちらにも同じように事象は起きるはずですが。

    5.1はOSのパッケージ管理でインストール。
    5.5は遅かったので、パッケージ管理と公式サイトからバイナリ、の2種類で試しました。が、結果は同様でした。

    あと、5.1で作ったテーブルをそのまま5.5で共用しました。5.5で何か変更があって互換性に問題が起きてるんでしょうかね。
    ファイルフォーマットはBarracuda。

    511 = :

    個人情報を晒すのは御勘弁ください。

    512 = :

    key_buffer_size というのはMyIsam用にあるインデックスを保存しておくバッファ
    の大きさを指定するパラメータみたいですけど、Innodb用にはそれに該当する
    パラメータは無いのでしょうか?

    513 = :

    >>512
    innodb_buffer_pool_size
    インデックスもテーブル本体もこれ

    514 = :

    >>513
    ありがとうございます

    515 = :

    日付についての質問です。
    year,month,dayで3つのIntegerフィールドを定義するのと、Dateフィールドを1つ定義するのとでは、
    年+月または年+月+日でSelectする場合どちらが高速にできるのでしょうか?

    できるだけ高速にSelectしたのです

    516 = :

    試した方が早くね?

    517 = :

    Dateフィールドを1つ

    520 = :

    DATE型の内部表現は3バイトの整数なんでしょ
    他の型で代用するとかえって遅くならね?

    521 = :

    DATEだと、毎年2月とか、毎月5日とか飛び飛びのデータを集計するのがつらい。
    Y/M/Dだと、2010/12/25~2011/1/15といった、月またがり、年またがりの
    データを集計するのがつらい。
    どういう集計をしたいのかによって考えるべき。両方つけてもよい

    523 = :

    8桁の数値にしてるわ。スッゲー楽。

    524 = :

    >>523
    毎月5日とか10月とかは、文字列ならsubstrとかrightで抽出できそうだけど、数値のときはどうやるの?

    525 = :

    >>521
    > DATEだと、毎年2月とか、毎月5日とか飛び飛びのデータを集計するのがつらい。
    5日締め毎に集計って事ですか?
    何が辛いのか分からないので詳しく教えて下さい

    526 = :

    2月29日の有無とか11月31日とか
    3月3日の一週間前とか

    クライアントソフト側できっちり丸められれば良いねぇ

    527 = :

    day of monthで検索するなら、フィールドを分けておけば(日,月,年)なんてindexを張れて便利。
    DBMSによっては関数インデックスが使えるからその場合はdateでもいけるけど、
    MySQLだとたしか使えない。

    530 = :

    トリガーでも使えば

    533 = :

    トリガでできそうですね!勉強してみます。
    ありがとうございます。

    534 = :

    MySQLは100万件程度のレコードでの運用は問題ないでしょうか?
    ユーザは20名程度です。

    535 = :

    とりあえず、
    訪問者数、日に300人前後。
    収録データ数は800万ちょい超え
    というショボ目のwebサイトは普通に動いてるよ。

    536 = :

    innodbも定期的にoptimize tableやったほうがいいの?

    537 = :

    >>536
    大量DELETEした場合はやっておいてもいい。
    やらんでも困ることはまずない

    538 = :

    >>534
    MS製品以外は普通大丈夫

    539 = :

    >>357
    ありがと!

    540 = :

    ごめん>>537

    541 = :

    絶対に許さない

    546 = :

    MySQLってなんだよ
    さっぱり解からん
    サルにも解かるように教えてくれ

    547 = :

    サルには必要ねーよ

    548 = :

    >>546
    MySQLってのは、MySQLの作者の娘(まいちゃん)から取った名前だよ

    550 = :

    >>534
    運用というか分析系には弱いね
    そういう用途ならSQLServerのほうが向いているかと
    予算がカツカツとかいう事情があるならPostgresでも入れるべし


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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