タグ

DBに関するtomoakinagaharaのブックマーク (5)

  • MySQLのインデックスですが、B-treeではなくB+treeを使用するのはどうしてなのでしょうか? | mond

    MySQLのインデックスですが、B-treeではなくB+treeを使用するのはどうしてなのでしょうか? 端的に言うと性能が良いからです。 これを理解するにはバッファプールへの理解が必要です。ディスク指向のデータベースの上では有限のメモリを最大限活用することでメモリに入り切らない巨大なデータ群に対して良好な参照性能を出す必要があります。バッファプールとはディスク上のデータの羅列を固定サイズのページ(InnoDBの場合16KB)の羅列であるとして読み書きに必要な分だけをメモリに移し取り複数の書き込みをできる限りメモリ内で受け止めて後でまとめてディスクに書き戻すという、ライトバック型のキャッシュのような機構です。 この中においてバッファプールは有限のサイズしか無いので適宜プール内のデータを書き戻して入れ替えながら上手くやっていく必要があります。 さてB+treeとB-treeの最大の違いは木のリ

    MySQLのインデックスですが、B-treeではなくB+treeを使用するのはどうしてなのでしょうか? | mond
  • MySQLのutf8mb4と戦った話 - Uzabase for Engineers

    皆様こんにちは、NewsPicksエンジニアの米澤です。 先日 2023/03/30は、こちらでアナウンスしていた通り、サービスの停止を伴うシステムメンテナンスを実施させて頂きました。 NewsPicksをご利用頂いている皆様には、ご迷惑おかけいたしました。 今回はこのメンテナンスの中で行われたDBテーブルのmigrationについてお話ししたいと思います。 ことの始まり やったこと 方針決め utf8mb4に対応していないテーブルを調べる migrationを作成する 影響範囲を調べる 開発環境でリハーサルを行う メンテナンスの日 最後に ことの始まり NewsPicksではバグの検知にBugSnagを利用しています。 ある時、BugSnagにこんなエラーが通知されてきました。 org.springframework.orm.hibernate4.HibernateJdbcExcepti

    MySQLのutf8mb4と戦った話 - Uzabase for Engineers
  • やってよかったbuild own x系(自作OSとか自作DBみたいな自作~)を紹介してみる

    はじめに build own xってなに?という方がいらっしゃると思います。 下記ページにあるような自作~みたいなやつのことを指しています。 自作OSとかDBとかとにかく様々な種類があるんですが、僕がやってみて良かったなぁと感じたものだけ紹介します。(一部やってないけど良さそうなのも紹介します。) 難易度を星5を最高として書いていきます。 言語は日語 or 英語です。 コンパイラ writing interpreter in go 形態: 言語: 日語、英語 コンパイラ系なら一番初めにおすすめなのは間違いなくこれ。 日語版では「Go言語でつくるインタプリタ」という題で出版されています。 外部に依存するライブラリを一切使わないのが特徴でスクラッチで書きます。 語り口調も平易でわかりやすく、コンパイラ?インタープリタ?という方にもおすすめ。 Monkeyという言語を実装するのですが、既

    やってよかったbuild own x系(自作OSとか自作DBみたいな自作~)を紹介してみる
  • Web APIを手作りする時代は終わった?

    ::: message info これは[フィヨルドブートキャンプ Advent Calendar 2022 Part.1](https://adventar.org/calendars/7760)の25日目の記事です。 昨日の記事は:@shujiwatanabe:shujiwatanabeさんの[質問しながら出来るようにしていく](https://shu91327.hatenablog.com/entry/2022/12/24/091025)と:@saeyama:saeyamaさんの[Rails/Vue 編集時に画像をD&Dで入れ替えした時のActive Storageの保存方法](https://saeyama.hatenablog.com/entry/2022/12/24/000123)でした。 ::: ↓こういうのを職人が丹精込めて一つ一つ手作りする時代は終わりました。 ```sh

    Web APIを手作りする時代は終わった?
  • 史上最強のデータベース、SurrealDB - Qiita

    SurrealDBというRust製データベースを知ったので紹介します。このデータベースはすごいです。リレーショナル、ドキュメント、グラフ、あらゆる種類のデータ構造を扱うことができ、かつインメモリ、単一ノード、分散環境、全てで動かすことができます。さらにHTTPやWebSocketによるアクセスと柔軟なユーザ認証、認可機能とがDB体に内包されており、ブラウザから直に接続するWebDBとしても使えます。とにかくなんでもできる夢のデータベースといった感じです。 特徴 機能を挙げていたら多くなりすぎたので、特に面白い部分を挙げます。 配列やオブジェクトをネストした複雑なデータ構造を持てるのに、レコードリンクという機能によりリレーションに対応していてしかもSQLやMongoDBより簡潔にクエリが書ける。 スキーマレスで各レコードには任意のフィールドを持てるが、必要ならスキーマを定義することもできる

    史上最強のデータベース、SurrealDB - Qiita
  • 1