Rails Developers Meetup 2018: Day 1 発表資料 https://techplay.jp/event/639872

Content-Length: 365599 | pFad | http://b.hatena.ne.jp/gologo13/database/
仕事やらなんやらでMySQLのクエリの良し悪しを判断する必要があるとき、EXPLAINの内容だけだとどのぐらい良くなったり悪くなったのか分からないので SET long_query_time = 0; してrows_examined (そのクエリでrows_sent行の結果を返すために何行に触ったのか)も一緒に提示するようにしている(少なくともMySQL 5.7時点ではrows_examinedはslow_query_logでしか確認できないはずperformance_schemaが有効ならevents_statements_historyやその仲間たちで確認できるとのこと*1 MySQL :: MySQL 5.6 リファレンスマニュアル :: 22.9.6 パフォーマンススキーマステートメントイベントテーブル)。 例: 上の例のBeforeは、もともとDBAが書いた温かみのあるSQLでO
なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策 『SQLパフォーマンス詳解』の翻訳者の松浦隼人さんに、8つの「SQLが重たくなる原因とその対策」を聞きました。システムのボトルネックになるような「問題のあるSQL」を回避するノウハウを学びましょう。 データの操作や定義をする言語「SQL」は、どのような領域を担うエンジニアにとっても必修科目です。しかし、その仕様をきちんと理解し、パフォーマンスに優れたSQLを書ける方はそれほど多くありません。問題のあるSQLを書いてしまい、知らぬ間にそれがシステムのボトルネックになってしまう事態はよく発生します。 では、どうすればそうした事態を回避できるのでしょうか? そのノウハウを学ぶため、今回は『SQLパフォーマンス詳解』の翻訳者であり、自身もエンジニアでもある松浦隼人(まつうら・はやと/@dblmkt)さんに8つ
こんにちは、サービス開発部の荒引 (@a_bicky) です。 突然ですが、RDBMS の既存のテーブルを見てみたら「何でこんなにインデックスだらけなの?」みたいな経験はありませんか?不要なインデックスは容量を圧迫したり、挿入が遅くなったりと良いことがありません。 そんなわけで、今回はレコードを検索するために必要なインデックスの基礎知識と、よく見かける不適切なインデックスについて解説します。クックパッドでは Rails のデータベースとして主に MySQL 5.6、MySQL のストレージエンジンとして主に InnoDB を使っているので、MySQL 5.6 の InnoDB について解説します。 InnoDB のインデックスに関する基礎知識 インデックスの構造 (B+ 木) InnoDB では B+ 木が使われています。B+ 木は次のような特徴を持った木構造です。 次数を b とすると、
岡山にはオープンセミナー岡山と言う最高のイベントがあります。 okayama.open-seminar.org 昨日は id:t-wada さんや id:naoya さんの資料がホットエントリー入りしてました。 この登壇はそれと同じイベントになります。 その他の方も超豪華講師陣の中で、私が出来る精一杯の経験も踏まえたお話をさせていただきました。 speakerdeck.com この中で出て来る、データベースリファクタリングは本当に素晴らしい本です。 OracleベースなのですがMySQLだろうがPostgreSQLだろうが必ずためになる本です。 ですが、この本は既に廃刊になっており再販の予定もありません… 僕は後世に絶対必要な本の一つだと思っているので再販のためにも皆さんの要望の声を上げていただけるとうれしいです。 そしたらもしかしたら本が世に復活するかもしれません。 またSQLアンチパタ
このエントリでは、Grzegorz Gajosによる記事、How Hibernate Almost Ruined My Careerを紹介する。 (Grzegorzから和訳と転載の許可は得た。) 以下はその全文の和訳だが、意訳超訳が混じっているので、もとのニュアンスを知りたければ元記事を読んでもいいし、読まなくてもいい。 想像してくれ。 君はJava開発者で、次のビッグプロジェクトを開始しようとしているところだ。 君は、そのプロジェクト全体に影響する根本的な決断をする必要がある。 君の柔軟なデータモデルをオブジェクト指向で抽象化するベストな方法を選択したい。生のSQLを扱いたくはないからね。 どんな種類のデータもサポートしたいし、理想では全種のデータベースをサポートしたい。 すぐに思いつくのは、単にHibernateを使うという解だ。そうだろ? Javaディベロッパの90%は君に同意するだ
2006年頃より、IT業界ではあるキーワードが浮上してきた。そのあるキーワードとは「クラウド」である。昨今では猫も杓子も「クラウド、クラウド」といった具合だ。クラウドを取り巻くIT業界は日々、盛り上がりを加速させている。 筆者はもともと、データベース・エンジニアとして、長年にわたり数多くのデータベースの設計・構築・運用を行ってきた。数百TB、10台以上のインスタンスから構成されるような大規模なデータベースから、数GB程度の小・中規模なデータベースまで、さまざまな業種・業態でデータベースに関する案件に携わった経験がある。このデータベースという技術領域においても、「クラウド」の流れを非常に大きく感じる。 例えば、さまざまなユーザーから以下のような質問をいただく。 データベースをクラウド上に構築したいがどのようにすればいいのか? フルマネージド型のデータベースを利用したいが、運用上、問題ないのか
最近 Cloud Spanner のベータ公開によって話題の Spanner。 気になっていたので論文を読んだり勉強会などで情報収集していました。日本語のリソースもそこまで多くないので、調べてわかったことを纏めておきます。 簡単にまとめると特徴は以下のとおりです。 Bigtable / Datastore と類似したアーキテクチャをとっており Tablet 群にデータを分散保存している ↑の仕組みであるの上に Lock Table を実装して同期処理のためのロックを処理している さらに↑の仕組みの上に分散トランザクションマネジャーを実装し、グループ横断のトランザクションを管理する 以下で、細かい説明を続けていきます。 Spanner の全体構成 Universe と Zone Zone と Spanserver Spanserver の構成 Spanserver と Replica Rep
MySQLでテーブルへのカラム追加やテーブルの再編成を行うには、ALTER TABLE文を使用します。MySQLのALTER TABLE文は、変更後の定義にもとづく作業用テーブルを作成し、変更前のテーブルから作業用テーブルへデータをコピーして、最後に二つのテーブルを入れ替えるという仕組みになっています。テーブルへのインデックス追加についても、現在のところ大半のケースで内部的にALTER TABLE文が実行されています。 ALTER TABLE文の怖いところは、処理がもうすぐ終わるのかどうかが分からないところです。テーブルサイズが1GBを超えるあたりから分単位の時間がかかるようになり、100GBともなると本当に終わるのか?と見ていて不安になります。メンテナンス時間が限られている場合は、作業を中断すべきかどうか難しい判断を迫られることもあります。 実は、というほどではありませんが、ALTER
つまり、これらのマーケットは小さく、しかもデータベースのマーケット自体よりも小さいのです。とは言え、どれかが他よりもマシになりうるでしょうか? マネージドホスティングは、本質的にはユーザのためにAWSでデータベースを動かすことで、そうすることでユーザたちは自分で動かす必要がなくなります。これらのサービスを使う代わりになるのは、AWSに自分でデータベースを立てることです。したがって、マネージドなデータベースホスティングサービスが課金できる額には、非常に厳しい上限があることになります。Compose.ioやmLabが、RethinkDBよりも1桁あるいは2桁多いユーザを抱えるMongoDBを提供していることを考えて、マネージドホスティングを提供することには少しの良い点もないという結論を下しました。 Database as a Serviceはマネージドホスティングの更に複雑なバージョンです。D
This blog compares how PostgreSQL and MySQL handle millions of queries per second. Anastasia: Can open source databases cope with millions of queries per second? Many open source advocates would answer “yes.” However, assertions aren’t enough for well-grounded proof. That’s why in this blog post, we share the benchmark testing results from Alexander Korotkov (CEO of Development, Postgres Professio
どうも!アプリケーション基盤チームの横田(@yokotaso)です! kintoneなどで利用していたJavaフレームワークのSeasarのEOLに伴い、S2Daoからの脱却を試みたのですが、パフォーマンス問題や障害を発生させてしまうなど問題を多々発生させてしまいました。 同じ過ちを繰り返さないという強い決意のもと、今回の失敗をブログで公開いたします。 失敗をあえて公開する点で斬新かつ濃いブログ記事となっております! 失敗体験の公開は恥だが役に立つ! 移行先の選定の失敗 移行先として選定したプロダクトは Hibernate*1です。 Hibernateを選んだ理由としては Spring Framework を選定した Spring Frameworkで Interface + アノテーションでプログラミングするならSpring Data JPA が有力 JPAに準拠したのORMの中でも、H
Exadata Oracle Exadataは、あらゆる規模と重要度のOracle Databaseワークロードをハイパフォーマンス、可用性、およびセキュリティで実行する、エンタープライズ・データベース・プラットフォームです。Exadataは、トランザクション処理、分析、人工知能、混合ワークロードをより高速かつ効率的に実行できる独自の最適化によるスケールアウト設計を採用しています。お客様のデータセンター、Oracle Cloud Infrastructure(OCI)、マルチクラウド環境において、多様なOracle DatabaseワークロードをExadataプラットフォームに統合することで、企業は、運用効率の向上、IT管理の軽減、コストの削減を実現できます。 Exadata Exascale - 世界で唯一のクラウド向けインテリジェント・データ・アーキテクチャの発表 Kothanda U
At Facebook we use MySQL to manage many petabytes of data, along with the InnoDB storage engine that serves social activities such as likes, comments, and shares. While InnoDB provides great performance and reliability for a variety of workloads, it has inefficiencies on space and write amplification when used with flash storage. A few years ago, we built RocksDB, an embeddable, persistent key-val
4. Masashi Terui @ marcy_terui I’m a developer and architect in the operators company (JIG-SAW Inc.) I'm the organizer on the some of events in sapporo with the theme of "Infrastructure as Code”. I’m a AWS Certified DevOps Engineer Professional. I’m a member of JAWS-UG Sapporo and GCPUG Sapporo (Coming soon!) I’m the winner of “Tuningathon 5” (The theme was MySQL!) ABOUT ME 4
Facebook、新しいMySQL用ストレージエンジン「MyRocks」をオープンソースで公開。フラッシュに適したデータの書き込みと圧縮効果 FacebookはMySQL用の新しいストレージエンジン「MyRocks」をオープンソースで公開しました。同社のエンジニアである松信嘉範(Yoshinori Matsunobu)氏がFacebookのブログに投稿した記事「MyRocks: A space- and write-optimized MySQL database」で紹介しています。 MySQLのデータベースエンジンとして使われているInnoDBは優れているものの、フラッシュストレージと組み合わせたときに書き込まれるデータ量の効率性などに課題があったため、MyRocksに取り組んだと説明されています。 InnoDB is great for performance and reliabil
概要 巷にはDBマイグレーションツールなるものがあります。この、マイグレーションというのは移行を意味しますが、いわゆる旧環境から新環境への移行といったデータ移行を意味するものではないのです。DB環境(DBスキーマ+データ)を移行して、同一状態のDB環境を手軽に構築できるようするツールなのです。 ここではFlywayというDBマイグレーションツールを試してみます。DB環境をバージョン管理して、DB移行を簡単にしてくれるツールです。 開発時、複数の開発者がそれぞれのDBを使うことがあります。それらのDB環境を一致させることが簡単になるので、古いDB環境を使って間違った実装・テストをするといった事態を未然に防止できるようになります。 ソースコードのバージョン管理が開発を支えるように、DB環境のバージョン管理も開発を支えてくれるはず。今後、システム開発の現場でDBマイグレーションツールの利用を検討
MySQL 5.1.38からMySQL本体にInnoDB Pluginバンドルされている。一部の先駆的なユーザー以外に、「InnoDB使ってますよ!」もしくは「検証してるよ!」という話をあまり聞かない。そもそもであるが、InnoDB Pluginってなんぞ?!という人が多いんではないかと思うのだが、実際はどうなのだろう?現在はRC版(リリース候補版)という位置づけのInnoDB Pluginであるが、一部影響度の高いバグが残っていたりしてGA版ほどの安定性は求められないものの、ほとんど実用に耐えうる品質になっているといえる。そんなわけで、今日は改めてInnoDB Pluginの使い方・使いどころについて説明するので、ぜひ皆さんの手でInnoDB Pluginを評価してみて頂きたい。 なお、以下の解説は現在の最新バージョンである、InnoDB Plugin 1.0.6を前提にしているので、将
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く
Fetched URL: http://b.hatena.ne.jp/gologo13/database/
Alternative Proxies: