日本語が正しく表示されていなかったため修正版をアップロードいたしました。 https://www.slideshare.net/linecorp/linemysql-115766814
なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策 『SQLパフォーマンス詳解』の翻訳者の松浦隼人さんに、8つの「SQLが重たくなる原因とその対策」を聞きました。システムのボトルネックになるような「問題のあるSQL」を回避するノウハウを学びましょう。 データの操作や定義をする言語「SQL」は、どのような領域を担うエンジニアにとっても必修科目です。しかし、その仕様をきちんと理解し、パフォーマンスに優れたSQLを書ける方はそれほど多くありません。問題のあるSQLを書いてしまい、知らぬ間にそれがシステムのボトルネックになってしまう事態はよく発生します。 では、どうすればそうした事態を回避できるのでしょうか? そのノウハウを学ぶため、今回は『SQLパフォーマンス詳解』の翻訳者であり、自身もエンジニアでもある松浦隼人(まつうら・はやと/@dblmkt)さんに8つ
PostgreSQLとMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較! オープンソースのデータベースとしてよく比較されるPostgreSQLとMySQL。どんな長所・短所があるのでしょう? それぞれの専門家による対談で明らかにします。 エンジニアとして働いていると必ず直面する悩み。それは、「どのリレーショナル・データベース(以下、RDB)を選ぶのが最善なのか?」です。 RDBごとに長所と短所は異なっています。そのため自社サービスにマッチしないRDBを選んでしまうと、それがボトルネックとなり開発・運用にトラブルが生じるケースは少なくありません。 なかでもよく比較検討されるのが、PostgreSQLとMySQL。ともにオープンソースRDBのデファクトスタンダードであり、高い性能と数多くの機能を持っています。 では、両者は具体的にどのような長所・短所があるのでしょうか。そ
今回は「pt-query-digest」を使用して、チューニングしたいSQLがスローログに記録されている場合の調査方法について説明します。 pt-query-digestとは pt-query-digestはPercona社が開発・配布するMySQL用のユーティリティーキットで、「Percona Toolkit」の1つです。最新ドキュメント(2016/3/22現在)はこちらにあります。pt-query-digestの基本的な使い方は「スローログをノーマライズ・集計し、人間が判断しやすい形式で出力させる」です。基本的にはスローログ用と考えますが、スローログ以外にもジェネラルログやバイナリーログ(mysqlbinlogコマンドの出力を入力する)、パケットキャプチャー(tcpdumpコマンドの出力を入力する)などが利用可能です。 Percona Toolkitのインストール まずはPercona
Copyright © 2004-2023 Impress Corporation. An Impress Group Company. All rights reserved.
リレーショナルデータベースで管理しているデータを Elasticsearch で検索・分析したい場合、Logstash が便利です。 Logstash とは?Logstash はオープンソースのサーバーサイドデータ処理パイプラインです。様々な数のソースからデータを取り込み、変換し、指定された任意のストア先にデータを格納することができます。 処理の内容はシンプルで、Input ステージでソース元の接続先情報を管理し、Filter ステージで変換をし、Output ステージで格納先接続先情報を定義します。Input 及び Output プラグインはデフォルトで様々なソースをサポートしています。そのため、Logstash を使えば、プログラミングレスで MySQL のデータを取り込み、変換し、Elasticsearch へインデックスすることができるのです。 事前準備MySQL と Elasti
こんにちは、サービス開発部の荒引 (@a_bicky) です。 突然ですが、RDBMS の既存のテーブルを見てみたら「何でこんなにインデックスだらけなの?」みたいな経験はありませんか?不要なインデックスは容量を圧迫したり、挿入が遅くなったりと良いことがありません。 そんなわけで、今回はレコードを検索するために必要なインデックスの基礎知識と、よく見かける不適切なインデックスについて解説します。クックパッドでは Rails のデータベースとして主に MySQL 5.6、MySQL のストレージエンジンとして主に InnoDB を使っているので、MySQL 5.6 の InnoDB について解説します。 InnoDB のインデックスに関する基礎知識 インデックスの構造 (B+ 木) InnoDB では B+ 木が使われています。B+ 木は次のような特徴を持った木構造です。 次数を b とすると、
(2014.12.3追記:このblogの内容は、以下の書籍にも反映させた。) SQLレベルの差異 MariaDB5.5とMySQL5.5ではSQLレベルでの違いはほとんどなかった。autoincrementの最大値の扱いくらい。 ただし、MariaDB10.0でREGEXPがマルチバイト対応になったので、アプリ側は注意。 項目 MySQL MariaDB Autoincrement 最大値に達すると、以降は最大値を繰り返す。Warningのみ。エラーにならない。tinyintなら…,125,126,127,127,127… 最大値-1まで。以降はエラーを返す。tinyintなら…,125,126,ERROR,ERROR,… EXPLAIN文 JSON形式 バージョン5.6から 未対応 Optimizer Trace バージョン5.6から 未対応(ただし、MariaDBのほうがオプティマイザ
来る2月27日、データベースの新書籍を発売させて頂くことになった。タイトルは「理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL」となっている。単に「データベース」と書いてあるが、RDBがメインのテーマの書籍である。 多くの人が未だにRDBを使いこなせていないのではないか。RDBの使い方をマスターするには何が必要なのか。それがここ数年私が追ってきたテーマであり、この書籍を出すことになった動機である。 あまりにも酷いDB設計、あまりにもスパゲティなクエリ、あまりにも希薄なデータモデルへの理解。そういった問題はどこから生み出されるのか。そのひとつの結論としてたどり着いたのが、「そもそもRDBの使い方があまり理解されていないのではないか」ということだった。名著、SQLアンチパターンでは「やってはいけないケース」について学ぶことができるが、その反対のテーマ、つまり本来どの
久々の更新。 土曜日は これまで何となく使っていたVagrantを本格的にいじっていたけど、知れば知る程便利だなあ。 Vagrantfileって Gruntfileみたいに何となくいじるのが面倒くさそうな印象があったんだけど、実は全くそんな事がなくて 寧ろちょろっとやれば誰でも簡単にいじれるようになるくらい学習コストが低かった(まだChefと絡めていないので Chefと連携させると若干話が変わってくるかもしれないけど)。 というわけで今回は Vagrantを使ってUbuntuサーバを2台立てて MySQLでレプリケーションを構成してみた話を。 今回に関してはどちらかというとVagrantよりMySQL寄りの話になります。 Vagrantに関しては boxの構造とかVagrantfileの事とか 色々と整理できたので 後日 初心者向けにvagrantの基本的な事柄についてまとめます。 Vag
「データモデリング」とは? さて、いきなりWorkbenchホームページのModelsからモデリング!を開始する前に、すこしデータモデリングについてのお話をさせてください。 みなさんが今利用しているMySQLを含むRDBMSは1970年代にIBMのE.F.コッド博士によってなされた提案を源流として、今日まで発展を続けてきました。その発展過程において、現実の世界におけるデータ要件と、データベースの設計とを結びつける方法論が必要になりました。 1976年にP.チェン博士によって提案されたER図はその役目を担うことが可能であり、各種改良を重ねられて今日まで利用されています。現実世界のデータをどのように扱うかをまとめ、ER図のような図版で視覚化したものを「データモデル」といい、そのデータモデルを組み上げていくことを「データモデリング」といいます。 データモデリングの過程、および結果として作成された
All of Percona’s open-source software products, in one place, to download as much or as little as you need.
DBエンジニアのための技術勉強会というイベントで、リレーショナルモデルにおけるDB設計について話す機会を頂いた。リレーショナルモデルは非常に重要であるにも関わらず、現場ではないがしろにされてしまっている。その結果、アプリケーションのロジックを上手くクエリで表現できず、開発現場では非効率な開発が行われ、多くの人がデスマ的な状況に追い込まれている。そういう危機意識について、これまで何度か本ブログでも書いてきたし、WEB+DB Pressで連載している動機もその点にある。リレーショナルデータベースはやはりリレーショナルデータベースとして使うべきだ。そのための鍵となるのが、DB設計である。 今回はなんと約2時間の持ち時間を頂いた。リレーショナルモデルについてはこれまで何度か話す機会を頂いたが、2時間というのは最長記録である。それに合わせてスライドもボリュームたっぷりのものになった。過去のスライドと
よく訓練されたアップル信者、都元です。 MySQLのデータベースのコピーとか、お引っ越しをしたい時、ありますよね。今AWS上で新規にMySQLを使いたいのであれば迷い無くRDSを選ぶと思いますが、まだRDSのmicroインスタンスが無かった頃に、microのEC2上に生でMySQLを建てた…とか、まぁ歴史上の理由は様々でしょう。 まぁ「無停止で」とか言い出すと色々大変ですが、そうでなければ(計画停止をすれば)MySQLの引っ越しって実はかなり簡単です。 まずは事前に出力先のMySQLの方はCREATE DATABASEを済ませておきます。CREATE DATABASE済みの場合は不要です。 $ mysqladmin \ -u'cmsampleuser' \ -p'cmsamplepass' \ -h'dest.hostname.example.com' \ --default-charac
待望のMySQL 5.6が正式にリリースされた。正式版の最初のバージョンは5.6.10である。コミュニティ版(MySQL Community Server)は下記のページからダウンロードできるので、ぜひ今すぐダウンロードして頂きたい。 MySQL Downloads MySQL 5.6のリリースにあわせて、GUIツールであるMySQL Workbenchやドライバも新しいバージョンがリリースされており、MySQL 5.6対応となっている。それらの周辺ソフトウェアもチェックして頂けると幸いである。 新機能について正式版の機能はリリース候補版の頃から特に変更はない。(リリース候補版まで到達したということは、正式版の機能セットは固まったということであり、大きな機能の変更はないことを意味するからだ。)なので新機能については、リリース候補版が出たときに書いたエントリを参照して頂きたい。 漢(オトコ)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く