さくらインターネット 「リレーショナルデータベースの面白さは『自己矛盾』にある」。大塚知亮が語る、さくらインターネットのDBのこれから #エンジニア# 社員インタビュー Welcome Talk「ようこそ、さくらへ!」 2025年8月29日 社会を支えるパブリッククラウドを一緒に作りませんか? >>さくらインターネットのエンジニア採用情報を見る 社員インタビュー記事や求人情報をお届け! >>さくマガのメールマガジンに登録する さくらインターネットに新たに加わった仲間を紹介する『Welcome Talk「ようこそ、さくらへ!」』。今回は2025年8月にデータベースのスペシャリストとして参加した大塚知亮に、田中翼がインタビューしました。MySQLコミュニティでの活動や、DBA、ストレージエンジン開発の経験を持つ大塚が、さくらインターネットで何を目指していくのか。じっくり掘り下げます。 大塚

Amazon Web Services ブログAmazon DynamoDB におけるシングルテーブル vs マルチテーブル設計 この文書は、AWS ヒーローであるAlex DeBrie によるゲスト投稿です。Amazon DynamoDB について学ぶ人にとって、シングルテーブル設計という考え方は、最も心を揺さぶるコンセプトの1つです。DynamoDBのテーブルは、エンティティごとにテーブルを持つというリレーショナルデータベースのような概念ではありません。多くの場合、1つのテーブルに複数の異なるエンティティを含みます。 DynamoDBのシングルテーブルに関するデザインパターンについては、DynamoDBのデベロッパーガイドを読む、re:Inventのトークやその他のビデオを見る、私が執筆した本をチェックするなどで理解することができます。シングルテーブル設計の賛否両論に特に焦点を当て
来月、タイミーのプロダクトデザイナー全員にSQL習得してもらうことにしたよ — Yasuhiro Yokota & STAFF / タイミー (@yktyshr) December 25, 2024 そして、タイミーのプロダクトデザイナーはSQLを書けるようになってもらいました。その取り組みについてお話しします。 私はプロダクトをデザインするときに、Figma、Notion、そしてBigQueryを常に開いています。 データをもとに仮説を立ててインタビューすることもあれば、インタビューで得られた課題のアイデアをデータで裏づけることもあります。「多くのユースケースはどうだろう?」「エッジケースは?」という疑問が湧いたら、データで知れる場合が多いです。 このように、デザイナーが大小の不確実性に向き合いながら体験を設計するのであれば、データを扱うことは基本的なリテラシーにしてよいのでは、と考えま

今週あなたは仕事で何回「調べ物」をしましたか?仕事においても、日常生活においても、私たちは常に何かを調べています。 そして、近年は「探す方法」も増えて、さまざまな情報にアクセスしやすくなりました。しかしその反面、得られる情報量が多く、「正しい情報かどうか」の判断は難しくなったと言えます。調べ物をしながら「これじゃない……」を繰り返した経験は誰しもあるはず。 「国会図書館にはのべ4700万点の本やその他の資料があるけれど、調べたい内容がその中に書いていないこともよくあるし、本の内容が直接検索できるようになっているのは、2024年9月時点だと体感で3割くらいなんです」。 そう語るのは、国立国会図書館のレファレンス業務に15年以上携わり、著書『調べる技術国会図書館秘伝のレファレンス・チップス』がSNSなどで話題を集める小林昌樹さん。 レファレンス業務とは、図書館の利用者が必要な情報を得るため

MySQLやPostgreSQLといったRDBMSからデータを引いてくるとき、扱うデータの規模によっては、1000件ずつLIMITをかけて順に引いていくということがある。 以前slow queryが出たらよくやっていたのを思い出して、ふとこのあたりってどういう根拠があってやっているのだっけ、自分が知っている他に効能があったりするのかな、と思ってSlackに書き込んだところ、同僚の id:onk に教えていただいた。その内容に加えて軽く調べた内容をまとめてみる。 Web系の話です。みなさまの知見がありましたら教えてください。 TL;DR 刺さる*1から 刺さったら困るから あたりまえ 詳細 もともとSlackに書いた原文は以下の通り(MySQL前提で書いているけどPostgresといった他のRDBMSにも適用できる話。):DB引くとき、Perl時代(?)によく1000件単位でchunkin

Skip to the content. 自作RDBMSやろうぜ! このサイトの目的RDBMS(いわゆるリレーショナルデータベース)というものはプログラミング言語の処理系や、OSなどと同様に、世の中で広く使われているソフトウェアであるにも関わらず、いざ自作してみようと思うと日本語で記述されたサイトや書籍で、必要な情報・情報源がまとまったものがないことに気づきました そこで、叩き台として、本サイト管理人および数名のコミッタで開発している自作RDBMSである SamehadaDB が軌道に乗るまでの経験をベースに、自作RDBMSするための道筋をある程度整理して書き記してみました 各々の情報・情報源は多くが英語で記述されていますが、その点はご容赦下さい なお、本サイトは技術的な解説を提供するのではなく、適切と思われる情報・情報源をポイントするようなサイトとなることを想定していますGitHub
概要 この記事では、SQLクエリをより効率的に記述するためのベストプラクティスとテクニックに焦点を当てています。データベースのクエリはシステム全体のパフォーマンスに直結するため、最適な書き方を知ることは重要です。インデックスの効果的な活用方法、適切な結合の選択、そして条件の効果的な書き方など、SQLの最適化に関する具体的な手法を解説します。各SQL文に関する実行計画の結果も掲載していますので、ぜひご確認ください。 なお、Oracle19cとOracle12cでの利用実績がありますが、他のデータベースやバージョンにおいての検証は行っておりません。 新しい情報は随時追加されますので、お楽しみにしてください。SQLの最適化に関連する基本的なアイデア 以下の通りと考えています。 1.インデックスの利用 2.正しいJOINの選択 INNERJOIN、LEFTJOIN、RIGHTJOINなど、

印刷する メールで送る テキストHTML電子書籍PDF ダウンロード テキスト電子書籍PDF クリップした記事をMyページから読むことができます 日立製作所(日立)は、Amazon Web Services(AWS)上で構築可能な超高速データベースエンジン「Hitachi Advanced Data Binder」(HADB)のベストプラクティス構成(検証済みのシステム構成)の提供を開始した。 この構成は、「Amazon EC2」のインスタンス選定方法や、「Amazon S3」、「Amazon EBS」のボリューム構成・設定をDBデータの容量別にパターン化している。また安価なAmazon S3をDBデータ格納に利用するとともに、処理性能を向上させるため高速なAmazon EBSをDBデータのキャッシュとして利用する。これによりストレージのコストを抑えられるとしている。 HADBは

Deno、SQLiteベースのキーバリューストア「Deno KV」のスタンドアロン版を公開。ソースコードもオープンにJavaScriptランタイムを提供するDenoは、SQLiteベースのキーバリューストア「Deno KV」をスタンドアロンで実行可能なバイナリの提供開始を発表しました。オープンソースとして公開もされています。 スタンドアロン版Deno KV(もしくはSelf-hosted版Deno KV)は、Denoと接続してバックエンドデータベースとして利用可能です。 これまでのDeno KVとの違い これまでDenoは、Deno KVを2つの方法で提供してきました。 1つ目は、Deno自身にSQLiteを組み込み、Denoの内臓データベースとしてDeno KVを実装することで、JavaScript/TypeScriptのためのデータストアとして提供する方法です。 この方法では、Den

エンジニアの格闘エンジニアのみなさんはかつてひどいコードや設計と直面し、それと格闘したことでレベルアップした経験はあるでしょう。 つまり、先輩エンジニアたるものクソコードやクソ設計を残して、後輩エンジニアのレベルアップに寄与するのは義務だと言っても過言ではありません(?) 今回はDB設計に焦点をあてて、そのように絶望させる設計の残し方を記しておきます。 初めての投稿なのでレベル的にはかなり初歩になっています。 ↑きっと彼も立派なエンジニアになった時感謝してくれるでしょう 1) 必要な正規化を行わないエンジニアという不思議な不思議な生き物は処理の共通化等なにかと処理をまとめたがる習性があります。 以下のように著者テーブルと書籍テーブルがあるとします。 書籍 書籍ID 書籍名 著者ID

今回は、SQLを書く上で特にパフォーマンスに影響のあるSQLの実行計画の読み方について解説します。実行計画はデータベース製品によってさまざまに差異がありますが、ここでは比較的どのデータベース製品でも共通する内容について解説します。 実行計画とは記述したSQLが実際にデータベースの内部でどのように処理されて結果を返すか、その処理方法を記述した情報です。 A5:SQL Mk-2では、SQLエディタで実行計画を見たいSQL の上にキャレットがある状態でメニューから [SQL(S)] – [SQLの実行計画(J)] または、Ctrl+E で表示できます。 表示の仕方はデータベース製品ごとに異なりますが、多くのデータベース製品ではツリー状の情報として表現されます。(このため A5:SQL Mk-2でもツリービューで実行計画を表示します。) ツリーのリーフ(端)から処理が行われ、ルート(根)に向かっ
このエントリーは Classi developers Advent Calendar2022の18日目。 ネタはなんでもいいよ!とのことなので、Claasiに全く関係なく、MysqlからPostgreSQLに移行する際の注意点を書く。 なお、まだRDSにPostgreSQLがなかった頃のような昔の記事だがこちらに無いことを書いていく。 soudai1025.blogspot.com soudai1025.blogspot.comMySQL から PostgreSQLにデータ移行する際の注意点MySQLとPostgreSQLは互換性がもちろんありませんので、細かいところで違いが発生します。 よく踏むデータ移行の注意点は以下の通り。 timestampやdatetimeを移行する先はtimestamp型になるが、timestamp型はタイムゾーン付きと無しがある timestamp wi
この記事を見てびっくりした。 https://laiso.hatenablog.com/entry/nope-sql 「個人開発のコストはDB次第」 まずビックリしたのは「DBってそんなにお金かかる?」という点。 もちろんDBがストレージ、CPU、メモリを食うのは分かる。 でもVPSならそんなにコストかからんだろう? 俺は1日100万PVほどのエロサイトを運営しているが、WEBサーバ1台、DBサーバ1台、画像サーバ2台で動いているぞ?VPS4台で月額6000円くらい。 次にビックリしたのは、個人開発なのに難しそうなDBサーバを使っている事。 「CloudFirestore」「Amazon DynamoDB」「MongoDB Atlas」 ↑俺、全部知らない。。。 もちろん、こうしたDBサーバの必要性は分かるのよ。 稼働率、安定性、拡張性などなど。 でもそれって、大規模サイト向けじゃない

こんにちは、freee Developers Advent Calendar 2021、19日目のid:shallow1729です。昨日はtdtdsさんで【マジで】サイバー演習シナリオの作り方【怖い】でした!障害訓練後に攻撃方法を解説された時はリアリティの高さに驚きました。 僕はMySQLを使っていて発生した不思議な挙動の調査の話をしようと思います。 今回問題となったクエリ 今回話題にするクエリは以下のようなシンプルなものです。 SELECT * FROM hoge WHERE id IN (...)MySQLのパラメーター次第ですが、デフォルトの設定だとこのIN句の中の値の数が数万になると適切なインデックスが用意されていてもフルスキャンが発生する事がありました。このクエリがテーブルのほとんどのレコードを網羅するような場合や高速でレコードを大量にinsertして統計情報が追いつかないケー
はじめにTwitterのタイムラインを見ていたらバッチ系のプログラムで逐次コミットをやめて一括コミットにしたら爆速になったというのを見ました。当たり前でしょ、と思ったけど確かに知らなければ分からないよね、と思って主に初心者向けにRDBを扱うときの注意点をまとめてみました。 プログラミングテクニック的なところからテーブル設計くらいの範疇でDBチューニングとかは入ってないです。 自分の経験的にOracleをベースに書いていますが、他のRDBでも特に変わらないレベルの粒度だと思います。 大量の逐次コミットをする バッチアプリケーションでDBにデータをインサートすると言うのはかなり一般的な処理です。しかしデータ量が少ない時はともかく大量のインサートを逐次コミットで処理するとめちゃくちゃ遅くなります。数倍から十数倍遅くなることもあるので、10分程度のバッチが1時間越えに化けることもザラにあるので原

IntroDBML (Database Markup Language) is an open-source DSL language designed to define and documentdatabase schemas and structures.It is designed to besimple, consistent and highly-readable.It also comes with command-line tool and open-source module to help you convert betweenDBML andSQL. Table users { id integer username varchar role varcharcreated_at timestamp } Table posts { id integer

「ユーザー目線」のシステムを目指してRDBが従来の階層型DBに比べて優れていた点はいくつか挙げることができますが、シェアを伸ばすうえで最も大きな影響は、ユーザーが使いやすいデータ構造とインタフェースにこだわったことです。すなわち、「テーブル」と「SQL」の発明です。RDBでは、すべてのデータを「テーブル」というただ一つのデータ形式によって表現します。テーブルは、見た目が「二次元表」に似ているため*3、MicrosoftExcelやGoogle ドキュメントなどのスプレッドシートを使い慣れた人が見ると、データを格納する方法が直観的にイメージしやすいという利点があります。実際、こうした二次元表によるデータ管理は、Excelなどのソフトウェアが登場する前から一般的な方法だったため、RDBが登場した当時の人々にとっても受け入れやすいものでした。 テーブルが画期的だった点は、もう一つあります。

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く