タグ

mysqlに関するkatsushのブックマーク (46)

  • [MySQL]複数行のUPDATEを1回のSQL実行で済ませたい。 @餅。

    などの方法で、UPDATEを複数回実行することになると思います。 が、当たり前ですが、これだと都度MySQLにアクセスすることになるため、大量の更新を行いたい場合だとDBへの負担とか所要時間とかが大変なことになります。 こういったとき、できるだけDBの負担を軽くしたい。 できれば1回のSQL実行で事を収めたい。 この1回の実行で複数行を更新することを、bulk(バルク) updateというそうです。

    [MySQL]複数行のUPDATEを1回のSQL実行で済ませたい。 @餅。
    katsush
    katsush 2018/12/17
    バルクアップデート
  • MySQLでバルクアップデートを実現するには その1 - Qiita

    更新のお知らせ 「その2」ができました。 「その1」を読んでいただいたあとに、こちらもご覧ください。 https://zenn.dev/maxima/articles/a23a9eda0cd3ae はじめに Hamee Advent Calendar 1日目ということで、実用的なSQL、バルクアップデートをご紹介したいと思います! バルクアップデートとは、1文のSQLで複数のレコードを一気に更新してしまうUPDATE文のことです。 バルクインサートはよく聞くけど、バルクアップデートは出来ないのかと疑問に思ったことはないですか? (バルクインサートについてそもそもご存じない方はこちらの記事がシンプルで分かりやすいかと思います) 結論から言いますと、バルクアップデートは可能です。しかし、バルクインサートほど気の利いた構文があるわけではありません。 これから何種類かご紹介しますが、ここに書かれて

    MySQLでバルクアップデートを実現するには その1 - Qiita
    katsush
    katsush 2018/12/17
    バルクアップデート
  • MySQLで参照の負荷分散を行うslaveは3台から構成するのがよいのでは - 酒日記 はてな支店

    前回の記事 MySQLをmaster:slave=1:1構成にして参照をslaveに向けるのがなぜ良くないか の続きです。 master : slave = 1 : 1 で参照を slave に分散してもまったく美味しくないわけですが、では参照の負荷分散を行いたい場合の slave は何台で構成するとよいのか考察してみます。具体的には slave 2台の場合と 3台の場合でどちらがお得か。 台数を増やすということは、どこかに障害が発生する確率が高まる、ということです。1台の slave に障害が発生してダウンした場合のことを考えてみます。 slave * 2 → 残り 1台で処理継続 生き残った1台あたりの処理が 2倍になる slave * 3 → 残り 2台で処理継続 生き残った1台あたりの処理が 1.5倍になる たとえば 1台あたり最大 1000qps の処理能力があるとします。sla

    MySQLで参照の負荷分散を行うslaveは3台から構成するのがよいのでは - 酒日記 はてな支店
  • MySQLをmaster:slave=1:1構成にして参照をslaveに向けるのがなぜ良くないか - 酒日記 はてな支店

    MySQLのmasterとslave 1:1にして参照をslave向けるのってやりたがる人多いみたいだけど、性能たいして上がらない割に可用性落ちるだけだからやめようキャンペーン 2011-06-19 00:16:30 via YoruFukurou MySQL はレプリケーションが簡単に構成できるのですが、時折 master 1台 に対して slave 1台、更新処理は master に、参照は slave に、という構成を目にします。 個人的にはこの構成はお勧めでないと思っているので、その理由を考察してみます。 1. 可用性が落ちる 当然ですが、master, slave のどちらが落ちても影響を受けるために可用性が低下します。 2. 全体の性能がほとんど上がらない master 1台ですべてのクエリを処理する場合と比べて、可用性が落ちる引き換えとして見合った性能向上が得られるか、という

  • データベースのmasterとslaveの使い分けの話。2014年版 - Hateburo: kazeburo hatenablog

    社内で少し話題になったので。 運用上の話はfujiwaraさんの MySQLをmaster:slave=1:1構成にして参照をslaveに向けるのがなぜ良くないか - 酒日記 はてな支店 MySQLで参照の負荷分散を行うslaveは3台から構成するのがよいのでは - 酒日記 はてな支店 をみてください。 最近、新しくサービスができたり、新規機能でデータベースを追加する際には必ず全ての参照をmasterに向けてもらっています。理由は上記のエントリを読んでください。このような構成が取れるのはもちろん性能的にそれで問題ないからです。 新しいハードウェアに、設定されたMySQL、問題のないように書かれたSQLであれば、数千QPSは余裕に、また少し頑張れば数万QPSを一台で賄えます。なので大体のサービスはmaster一台で十分です。 さらにこの考え方を進めて、Webアプリケーションの中で sub d

    データベースのmasterとslaveの使い分けの話。2014年版 - Hateburo: kazeburo hatenablog
  • innodb_thread_concurrencyに関する話 | GREE Engineering

    こんにちわ。せじまです。今回の話は軽く書こうと思っていたのですが、長くなりました。まぁInnoDBの話なのでしょうがないですね。 はじめ 今回はinnodb_thread_concurrencyについてお話しようと思います。できれば、事前にInnoDB の mutex の話(入門編)を読んでいただいた方が、より深く理解していただけるのではないかと思います。 長いので、最初に五行でまとめます 現代において、ほとんどのケースでは、innodb_thread_concurrencyはデフォルトの0のままで問題ないと思います。なぜなら、最近のInnoDBはかなり良くなってきたからです。 それでもinnodb_thread_concurrencyをチューニングするとしたら、「高負荷状態になったときでもスレッド間の公平性をなるべく担保し、安定稼働させるため」と割り切って使うのが良いでしょう。 inno

    innodb_thread_concurrencyに関する話 | GREE Engineering