タグ

高速化に関するddddonutsのブックマーク (5)

  • Rails3からMySQLのパーティショニングを扱う時の注意点 - Qiita

    10月に札幌でMySQL勉強会というのがありまして、その時はもくもく作業して成果発表という形だったのですが、そのときにRailsMySQLを組み合わせて色々試したのでそれを記事にしたいと思います。 今回はパーティショニング用のgemを使っていない状態です(後で見たら存在していることに気づきました... パーティショニングについてですが、DB内部で物理的にファイルを分けるようなものです。 例えば、MySQLのDELETE文はとても遅いですが、パーティション自体を消す場合はTRUNCATE並に早いです(1ヶ月ごとにパーティションを切って、月頭に3ヶ月より前のログを削除する時とかに便利 他にも、MySQLのオプティマイザが必要なパーティションを探しだして、そのパーティションに絞ってから検索してくれるメリットもあります。 基形はこちらです class CreateNoPartItems < A

    Rails3からMySQLのパーティショニングを扱う時の注意点 - Qiita
  • MySQLのRANGEパーティションを使う | 村式流 イッパシエンジニアへの道

    MySQLのRANGEパーティションのお話です。 MySQL5.1からサポートされているパーティショニングですが、ログテーブル等、レコード数が多くなりがちなテーブルに日付でパーティショニングしてます。 最初から遠い未来までのパーティションを切るのは気持ち悪いし、長く運用されるサービスの場合は忘れる可能性もあるのでバッチを回すのがいいと思いますが追加する場合の手順と注意点です。 ・まずはパーティションを作成 CREATE TABLE `mura`.`test1` ( `date` DATE NOT NULL , `name` VARCHAR( 40 ) NOT NULL , `contents` VARCHAR( 255 ) NOT NULL , `created_at` DATETIME NOT NULL ) ENGINE = InnoDB PARTITION BY RANGE (TO_

  • 【MySQL】パーティショニングをやってみた - Qiita

    とあるポータルサイトにて膨大なデータ数(約1,000万)のテーブルにアクセスする必要性が出てきた。そのままではDBの負荷が上がることが想定されるため、とりあえず負荷を減らすためにもパーティショニングでデータを小分けにして負荷を上げない対策を講じる。その時の備忘録。 パーティショニングを既存テーブルに追加する時の注意点 対象となるカラムをprimary keyに含める 最初、パーティショニングをするために使用するカラム(日付型)を主キーに含めていなかった。 それで実行しようとするとエラーが発生。 そもそもの主キーのカラムがオートインクリメントされるカラムなので、まずはこれを削除して、主キーに追加した。 ここで使ったSQL

    【MySQL】パーティショニングをやってみた - Qiita
  • 今さらだけどMySQLのパーティショニング機能を試してみた - (゚∀゚)o彡 sasata299's blog

    2013年03月21日18:11 MySQL 今さらだけどMySQLのパーティショニング機能を試してみた 最近は花粉が飛んでて辛い季節ですがみなさまいかがお過ごしでしょうか。でももうちょっと我慢すればサクラの季節ですよ〜。花見良いですよね、飲みたいだけですが。 ・・さて、今回はちょっと必要になったので、MySQLのパーティショニング機能なるものを試してみました。存在は知ってたけど、実際に試してみたことは無かった…。 パーティショニングとは? これはどういうものかと言うと、MySQL5.1から使えるようになった機能で、ひとつのテーブルのデータを条件によって複数の領域(パーティション)に振り分けて管理することができる、というものです。例えば日別にデータを別々のパーティションに振り分けたり。 パーティショニングするとデータの削除が高速だったり(通常は削除ってものすっごい遅いけど、特定のパーティシ

  • 高速処理化!MySQLのパーティショニング機能を使ってみよう | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

    みなさん、最近人生のパーティショニングしてますか? こんにちは、勝利です。 今回はMySQLのパーティショニングについて紹介させていただきます。 MySQLのパーティショニングとは? MySQL5.1ぐらいから使えるようになった、1つのテーブルを分割する機能。 テーブルを分割するので、格納できる根的な容量の拡張や、やり方(Plunning)によっては高速処理を実現できます。 分割した際のデータ振り分け方法としては大体以下のような形があります。 RANGE ・・・ パーティションごとに範囲を指定して振り分ける LIST ・・・ パーティションごとに格納する値で振り分ける HASH ・・・ 1つのカラムの値を式の結果で振り分ける KEY ・・・ 1つ以上のカラムの値をMD5関数等で評価して分割する 使用するメリットとしては下記2点のようなことが考えられます。 メリット1 [高速化が見込める]

    高速処理化!MySQLのパーティショニング機能を使ってみよう | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
    ddddonuts
    ddddonuts 2013/08/29
    パーティショニングで分割すると大量レコードでも大丈夫
  • 1