![https://engineering.mercari.com/entry/2017/12/18/deadlock](https://cdn-ak-scissors.b.st-hatena.com/image/square/769d3e8cb08249f26b396d29162b819e9ff9c331/height=288;version=1;width=512/https%3A%2F%2Fstorage.googleapis.com%2Fprd-engineering-asset%2F2020%2F06%2F0cb70d73-ogp_a.jpg)
Percona Database Performance Blogの翻訳。既に運用を始めたデータベースで、インデックスが正しく使われているか、無駄や不足がないかを確認する方法のまとめ記事。クエリをひとつひとつ確認するのではなく、統計情報を元に判断する分かりやすい方法。 このブログ記事では、MySQLインデックスに手入れする基本的なステップについて見ていこうと思います。 データベースは、インデックス次第でハイパフォーマンスにも、役立たずで遅くて大変にもなりうることはご存知でしょう。インデックスは、時々手入れをする価値がある非常に重要なものです。それでは、何をチェックすればよいのでしょうか?順不同ですが、確認すべき点を挙げてみます。 1. 使われていないインデックス sysスキーマで、使われていないインデックスをとても簡単に見つけられます。 schema_unused_indexes ビューを
Uber-migrated-pg-to-mysql.md Why Uber Engineering Switched from Postgres to MySQL - Uber Engineering Blog のまとめ Posgresqlだと pgは追記型なので少しの更新でも多くのdiskへのwriteがおきる カラムを一つ更新しただけで多くのindexの書き換えが起こる よって、replicationはWALを送るので更新が多いとWALが大量に送られる repcliationでは物理的なdiskの変更を送る DC間でレプリするときつい bugがあってreplica間でMVCCの不整合が起きる masterとreplica同じdisk上のデータ構成を共有するのでupgradeがつらい cache readはsyscallとosのpage cache経由なので重い 1コネクション1プロセス
2. 2 自己紹介+所属会社紹介 • 渡部 亮太(わたべ りょうた) – JPOUG 共同創設者、ボードメンバー – Oracle ACE – 著書「プロとしてのOracleアーキテクチャ入門 [第2版]」 「プロとしてのOracle運用管理入門」 – ブログ「コーソルDatabaseエンジニアのBlog」 http://cosol.jp/techdb/ • 株式会社コーソル – 「CO-Solutions=共に解決する」の理念のもと、Oracle技術に特 化した事業を展開中。心あるサービスの提供とデータベースエン ジニアの育成に注力している – 社員数: 131名 (2016年7月時点) – ORACLE MASTER Platinum 11g 取得者数 45名 ORACLE MASTER Platinum 12c 取得者数 28名 (現時点でおそらく)取得者数 日本 No.1
SNSやソーシャルゲーム、アドネットワークなどのシステムではいろいろなログ情報をDBに保存することもあると思います。 そのさい、日々増えつづけるデータやパフォーマンスをどの様にさばいていくかが重要になってきます。 今回はログ系のデータをMysqlでどのように運用していくか、をテーマにいくつかのノウハウをまとめました。 ログ系テーブルの特徴 ログ系のデータとは、つまり何かのアクションの履歴データのことです。 一般的にはこのような形になるかと思います。 CREATE TABLE `t_logs` ( `id` bigint(20) unsigned NOT NULL, `user_id` int(10) unsigned NOT NULL DEFAULT '0', `event_id` int(10) unsigned NOT NULL DEFAULT '0', `created` datet
テーブルのサイズはphpMyAdminでも見れますが、コマンドから見れたほうが何かと便利なので、調べてみました。 全てのデータベースのサイズを確認する # MB単位 select table_schema, sum(data_length+index_length) /1024 /1024 as MB from information_schema.tables group by table_schema order by sum(data_length+index_length) desc; +--------------------------+---------------+ | table_schema | MB | +--------------------------+---------------+ | database1 | 5579.89978790| | databas
やりたいこと わりと古いLAMP(Linux / Apache / MySQL / PHP)サーバーが現役稼働中なのでアップグレードしたい、でも新しいサーバーを買う金は無い、どうしよう?という状況があり、Dockerを使えば安全に素早くアップグレードできるのではないかと思いついて、やってみました。 Dockerの導入 ここが一番難関です。古いサーバーにはDockerが導入できない場合があります。 以下面倒なのでrootで作業します。 Dockerのインストール まずInstall Dockerを見てサーバー上にDockerをインストールします。Ubuntuの場合、64bitでカーネルのバージョンが3.10以上でないとインストールできないようです。 Dockerは以下の一行だけでインストールできました。
Eureka EngineeringLearn about Eureka’s engineering efforts, product developments and more.
ISUCON5の出題担当の一人、kamipoです。 今回はISUCON5の予選問題がどういう問題だったのか、振り返ってみましょう! 予選出題「ISUxi」今回の予選の出題におけるメイントピックは「N+1問題」でした。この問題にうまく対処できたかどうかが結果に大きく影響したと思います。また、ISUxiではN+1問題含め制限時間内には対処しきれないぐらい多くの問題が「/」ページに詰め込まれていたので、これらの問題への優先順位付けや着実に対処できるかも重要でした。というわけで、「/」ページのボトルネックについて解説することで本予選の振り返りとしたいと思います。 N+1「/」ページではis_friend?とget_userの大量の呼び出しがありました。これらはuser_idに紐付くデータなのでSQLでJOINすることで呼び出しを無くすことができます。もしくは、usersテーブルの内容を変更する機能
ISUCON 5の予選で2日目3位、全体で5位のスコアで通過した。 メンバーは id:ntakanashi さん, id:astj さんと自分の3人で、「はむちゃん」というかわいいチーム名で参加した。 言語は当然Perl。 役割分担は id:astj さんの記事にも書いてあるけど、だいたい以下のようなものだった。 id:y_uuki : ミドルウェアより下をお任せ / ログ解析して改善ポイントの洗い出し id:ntakanashi : オンメモリにしたりモジュールを入れ替えたり諸々チューニング id:astj : クソクエリやN+1をちまちま潰していくISUCON 5の予選に参加して全体5位で通過しました - 平常運転 昨年のISUCON 4に参加したときに、少なくともISUCON予選においてはアプリケーションロジックの改善/改変がスコアに対して支配的だと感じていた。 そこで、インフラ担当
はじめに RailsアプリをEC2上のdockerで動かしてみます。以下、一台のホストに必要なコンテナsを載せるシングルホスト構成での作業です。ステージング環境のような非production用途を想定しています。 ミドルウェアは以下です。 Ruby 2.2.1 Rails 4.2.1 MySQL 5.6 nginx unicorn サンプルアプリのリポジトリは以下です https://github.com/konpyu/rails-docker-sample コンテナ構成はこんな感じです nginxコンテナ unicornコンテナ mysqlコンテナ データ共有コンテナ ホストの起動と準備 EC2のインスタンスを適当に立てます。今回はCentOS7(ami-89634988)をホストOSとします。
mycli BlackLivesMatter We value the diversity of our community. We strive to amplify the voices of the oppressed to eradicate racism and xenophobia. We ask our community to stand together in support of the Black community. MyCLI is a command line interface for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting. Source: https://github.com/dbcli/mycli Bug tracker: https://githu
MySQL 5.7.4で導入されたdefault_password_lifetimeがじわじわくる(MySQL 5.7.11でFIX!!) 【2016/01/13 10:12】 MySQL 5.7.11でdefault_password_lifetimeのデフォルトは0に変更になりました! それ以降のバージョンであればこの記事の内容は気にする必要はありません。 日々の覚書: MySQL 5.7.11でdefault_password_lifetimeのデフォルトが0になるらしい! TL;DR default_password_lifetime= 0 を秘伝のmy.cnfに入れておくつもり。 MySQL :: MySQL 5.7 Reference Manual :: 5.1.4 Server System Variables パラメーターの意味は読んで字のごとく、「最後にパスワードが更新さ
こんにちはこんにちは。最近お腹痛いばっかり言ってることで有名なiwanagaです。 DeNAは外部的にはプラットフォーム的な部分の方がフィーチャーされることが多いですが、実はソーシャルゲームの提供も行っています。怪盗ロワイヤルとか、どこかで聞いたことがあるのではないでしょうか。 僕はDeNAでソーシャルゲームが誕生した辺りからずっとサーバサイドを見てきましたが、そんな運用の中で自分が貯めてきた知見とかTIPSをご紹介したいと思います。 かれこれ10タイトル近くはレビューしたり運用したりしてるため結構言いたいことはいっぱいあるので、小出しにしつつ評判よければ次も書きます。 ソーシャルゲームのためのMySQL入門一覧 ソーシャルゲームのためのMySQL入門 - Technology of DeNA ソーシャルゲームのためのMySQL入門2 - Technology of DeNA 「MySQL
こんにちはこんにちは。11インチMacBook Airが欲しくてたまらないiwanagaです。 前回の記事 が幸いにもご好評を頂けた様で非常にうれしいです。嬉しくなって、ついがんばって第2弾を書いてしまいました。引き続き、ソーシャルゲームでよく使われるテーブルタイプ毎にちょっとしたテクニックを紹介していきます。 今回はちょっとライトな感じ&読み物になってしまっていますが「ユーザID単位で1つだけ持つデータ」と「パラメータなどのマスターデータ」についてご説明したいと思います。ちなみに次回はInnoDBのデータ構造の簡単な説明と複合プライマリーキーのデータについて、その次で紹介し損ねたちょっとマニアックなテクニックや性能管理のための手法を紹介することを予定しています。 その前に。。。 先日行われた JAPAN INNOVATION LEADERS SUMMIT で弊社松信が「ソーシャルゲームの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く