並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 2067件

新着順 人気順

mysqlの検索結果161 - 200 件 / 2067件

  • RDBのトラブルの現場を追え! / rdb-Troubleshooting

    そーだいなる DBRE Nightでの登壇資料です https://connpass.com/event/138437/ # 紹介資料 - https://speakerdeck.com/soudai/shi-xing-ji-hua-falsehua - https://www.youtube.com/channel/UCeenIljXnSwrwYEU-YBE2qA/feed - https://speakerdeck.com/soudai/postgresql-architecture-and-performance-monitoring - https://gihyo.jp/dev/feature/01/dex_postgresql/0002 - https://lets.postgresql.jp/documents/technical/query_analysis/1 - http

      RDBのトラブルの現場を追え! / rdb-Troubleshooting
    • どのレイヤー(層)でトランザクションを実装すべきか

      このように、層ごとに関心事の分離を行うことで、保守性の高い(変更容易性や再利用性等)アプリケーションを実現できます。 しかし、「トランザクション」においてはどうでしょうか。 トランザクションはビジネス領域においても、技術領域においても関心事がある内容です。 そういう曖昧なものは「ひとまず usecase 層に入れてしまえ」という方針になりがちです。 ですが、DB 固有の知識を usecase 層の関心事にしてしまっては、関心事の分離をするメリットが得られません。 そのため、関心事の分離を実現しつつトランザクション実装をする方法を模索してみました。 前提 1. クリーンアーキテクチャを採用している(オニオンアーキテクチャやレイヤードアーキテクチャも含む) そもそもビジネス知識と技術知識を分離していないアーキテクチャを採用している場合、メリットは得られません。 そのため、オニオンアーキテクチャ

        どのレイヤー(層)でトランザクションを実装すべきか
      • Wiki.js + Heroku を使って、無料で高機能の情報共有 wiki を簡単に作る

        背景: GitHub wiki への不満 私の所属する研究室では、メンバー全員が1つの GitHub Organization に所属しており、情報共有はその Organization 上のリポジトリの GitHub wiki で行われています。 研究室がコンピュータサイエンス系であることもあってメンバーは GitHub や Markdown に慣れており、普段 GitHub wiki を使っていて困ることはそんなになかったのですが、それでも時々不満が出ることがありました。 不満として多いのは、色々記事を書いているうちに全体構造がよくわからなくなってしまうという点にあると思います。GitHub wiki ではディレクトリ構造を持てないので、全ての情報がリンクを経由してアクセスされることになり、段々と整理がつかなくなってしまいます。 複数のリポジトリにそれぞれ wiki を書くこともできます

          Wiki.js + Heroku を使って、無料で高機能の情報共有 wiki を簡単に作る
        • MySQLのコネクションハンドリングとスケーリング | Yakst

          MySQLのコネクションハンドリングの内部構造、スケール限界、そして最大コネクション数のチューニングなどについてご紹介します 免責事項 この記事はGeir Hoydalsvik氏によるMySQL Server Blogの投稿「MySQL Connection Handling and Scaling」(2019/3/19)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 この投稿では、MySQLのコネクション、ユーザースレッドおよびスケーリングについて取り扱います。MySQLがどのように動作するかをよりよく理解することで、アプリケーション開発者やシステム管理者が、トレードオフを踏まえた良い選択をできることでしょう。本記事ではコミュニティー版でコネクションがどのように動作するかについて述べますが、一方でスレッドプール、リソースグループ、あるいはコネクション多重化といった関

          • WHERE 条件のフィールドを UPDATE するのって,明示的にロックしてなくても安全?全パターン調べてみました! - Qiita

            WHERE 条件のフィールドを UPDATE するのって,明示的にロックしてなくても安全?全パターン調べてみました!MySQLSQLPostgreSQLDatabaseQiitaEngineerFesta2022 TL; DR MySQL/Postgres とも, MVCC アーキテクチャの恩恵で, SELECT と UPDATE は基本的には競合しない。 単一レコードのシンプルな UPDATE でも排他ロックされ,排他ロック中のレコードへの UPDATE での変更操作は トランザクション分離レベルによらず ブロックされる。UPDATE 文に含まれる WHERE 句での検索もブロックされ,これはブロックされない SELECT による検索とは別扱いになる。 但し UPDATE 文の WHERE 句上で,更新対象をサブクエリの SELECT から自己参照している場合は例外。トランザクション分離

              WHERE 条件のフィールドを UPDATE するのって,明示的にロックしてなくても安全?全パターン調べてみました! - Qiita
            • 「SQL」の読み方論争に決着? 「しーくぇる」vs「えすきゅーえる」にPostgreSQLがケリ/冠詞にはくれぐれも注意【やじうまの杜】

                「SQL」の読み方論争に決着? 「しーくぇる」vs「えすきゅーえる」にPostgreSQLがケリ/冠詞にはくれぐれも注意【やじうまの杜】
              • 次世代データベース TiDB の検証とその評価 [DeNA インフラ SRE] | BLOG - DeNA Engineering

                ※こちらは先日実施された DeNA インフラエンジニア / SRE MEETUP で話した内容を Blog 記事化したものです! こんにちは!IT基盤部の熊谷です。IT基盤部にて大規模ゲームのインフラを見ている 新卒2年目のインフラエンジニアです。この記事では “DeNA でのデータベース運用とそのツラミ” と、“TiDB導入への検証・検討” をご紹介させていただきます。 データベースの最適解 DeNA のデータベース構成は最適解を求めて改良を積み重ねてきました。最初期の構成、(便宜上、第1世代と呼びます) では VM Instance 上に MySQL を構築し管理する MySQL on EC2 構成。続く第2世代では、マネージドサービスを駆使した Aurora MySQL 構成。この2世代の中で生じた “ツラミ” を解消する次の世代、言わば 第3世代に該当する新しいデータベース構成を現

                  次世代データベース TiDB の検証とその評価 [DeNA インフラ SRE] | BLOG - DeNA Engineering
                • M1Mac × Docker × SchemaSpy × MySQL8.0でテーブル定義書とER図を自動生成してみる

                  M1Mac × Docker × SchemaSpy × MySQL8.0でテーブル定義書とER図を自動生成してみる 2022.10.19 技術 Docker, MYSQL こんにちは、システム部の能勢です。昨年の秋に入社して、今はバックエンドを中心に開発を担当しています。 「この設計資料、最終更新何年前やねん」 「なんか現実と違うんですけど」 こんな言葉にビビビっとくる方いませんか? 最近はかなり激減したんですが、自分は少なくともエンジニアキャリアの最初の方ではこういう経験をよくしてきたタイプです。 弊社みたいにプロジェクトリリース前にドキュメントを第三者視点できっちり確認されるような体制のある開発現場ではこういうことが起こるのも低頻度だと思うんですが、実際問題世の中にはいろんなタイプの現場がありますし、そこまできっちり管理しきれない・・・こんなホンネが漏れるのが実情という方も多いんじゃ

                    M1Mac × Docker × SchemaSpy × MySQL8.0でテーブル定義書とER図を自動生成してみる
                  • Cloud FirestoreからPostgreSQLへ移行したお話 - ZOZO TECH BLOG

                    はじめに こんにちは。ブランドソリューション開発本部FAANSバックエンドブロックの田村です。普段はサーバサイドエンジニアとしてFAANSのバックエンドシステムの開発をしています。 FAANSとは、弊社が2022年8月に正式ローンチした、アパレル店舗のショップスタッフの販売サポートツールです。FAANSでは、データベースとしてGCPのサーバレスでドキュメント指向のNoSQLデータベースであるCloud Firestoreを当初採用していました。Cloud Firestoreはサーバレスなので運用負荷が掛からず、また安価でスケーラビリティにも優れたハイパフォーマンスなデータベースです。 しかし、Cloud Firestoreを使用して開発・運用していく中で直面した様々な課題からGCPのフルマネージドのリレーショナルデータベースであるCloud SQLのPostgreSQLにデータベースのリプ

                      Cloud FirestoreからPostgreSQLへ移行したお話 - ZOZO TECH BLOG
                    • 話題の AlloyDB は本当に凄いデータベースなのでプレビューを使い倒した #devio2022 | DevelopersIO

                      ウィスキー、シガー、パイプをこよなく愛する大栗です。 この度クラスメソッド株式会社で開催している技術イベント DevelopersIO 2022 のアーカイブ動画セッションに登壇しましたので、ブログで解説を行いたいと思います。なお本内容は2022年6月時点の内容となっていますので、現在の状況とは異なっている場合がございますのでご了承ください。 AlloyDB for PostgreSQL は2022年7月27日現在において、プレビューのステータスです。このプロダクトまたは機能は、Google Cloud Platform の利用規約の一般提供前のサービス規約の対象となります。一般提供前のプロダクトと機能では、サポートが制限されることがあります。また、一般提供前のプロダクトや機能に変更が加えられると、他の一般提供前バージョンと互換性がない場合があります。詳細については、リリースステージの説明

                        話題の AlloyDB は本当に凄いデータベースなのでプレビューを使い倒した #devio2022 | DevelopersIO
                      • Gormにおける「仕様通り」なSQLインジェクションの恐れのある実装についての注意喚起 - ANDPAD Tech Blog

                        ANDPADボードチームの原田(tomtwinkle)です。 Node.jsの mysqljs/mysql の仕様に起因するSQLインジェクションが話題に上がっていたので、それGolangのORMであるGormでも同じような「仕様」があるよ! という注意喚起の意味も込めて筆を執りました。 ※ 2022/02/21追記 コードレビューを自動化して指摘してもらう記事を公開しました! tech.andpad.co.jp Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション | 株式会社Flatt Security TL;DR GormのQuery Conditions関数に関する危険な仕様 対策 締め TL;DR GormのConditions関数(Find, First, Delete...)を使用する際、第2引数の値にStringを引き渡

                          Gormにおける「仕様通り」なSQLインジェクションの恐れのある実装についての注意喚起 - ANDPAD Tech Blog
                        • Herokuから ECSに 移行した - pixiv inside

                          こんにちは、インフラ部の id:sue445 です。私事ですが先日GCPの Professional Cloud Architect を取得しました。 そういうわけで今日はGCPではなくAWSの話をします。 tl;dr; 劇的ビフォーアフター 構成 移行のモチベーション パフォーマンス向上 コスト圧縮 アーキテクチャの採択理由 やったこと 1. DB作成 2. MySQL 5.7 -> 8.0 MySQL 8.0でハマったこと MySQL 8.0からデフォルトの認証がcaching_sha2_passwordになった RDSのMySQL 8.0からMariaDB 監査プラグインがなくなった 3. 本番用のDockerイメージを作成 困ったこと:CodeIgniterがログの標準出力に対応していなかった 4. ECS + Fargate + CodePipeline構築 5. CDN作成 6

                            Herokuから ECSに 移行した - pixiv inside
                          • MySQLでUUIDv4をプライマリキーにするとパフォーマンス問題が起きるのはなぜ?(N回目)

                            はじめに こんにちは、令和トラベルでバックエンドエンジニアをしている飯沼です。 MySQLでは、UUID (v4)などのランダム性の高いIDをプライマリキーに設定すると、パフォーマンスが低下すると言われています。私自身もこの問題については認識しておりアンチパターンとして避けて来ましたが、イマイチ理由を理解できず何度も調べていたので自分の理解を整理しました。 ※ この記事は令和トラベルのTech LT会で共有した内容を記事にしたものです。社外の方にもご参加いただけるTech LT会は connpass にて告知しています。 UUIDをプライマリキーにするユースケース そもそもUUIDをプライマリキーにするユースケースはどのようなものがあるのでしょうか? いくつかの観点から考えてみます。 パフォーマンス観点 大量の同時書き込みが発生するような状況でauto incrementを利用してIDを発

                              MySQLでUUIDv4をプライマリキーにするとパフォーマンス問題が起きるのはなぜ?(N回目)
                            • Webサービスエンジニアが教えるサーバサイドのログ分析 情報を可視化して負荷状況を見よ

                              ログ分析勉強会は、日々の業務に役立てられる「ログ分析」についての情報交換を目的として活動しています。オンライン開催となった今回、AWSに詳しい山口氏がWebサービスのパフォーマンス改善に必要なログ分析について、日々の業務から得た知見を共有しました。後半は、サーバーサイドから見たログ分析について。 サーバ情報を可視化して負荷状況を見る 続いて、サーバの負荷状況を見るところですね。リソースの情報をコマンドで取得してサーバ情報を可視化しましょうというところです。 よく使うのは、1つ目はhtopですね。htopでプロセスごとにどれくらいのメモリやCPUを使っているかを取っていくのがあります。リクエストが多いときにこれを取っていって、どこが重たくなっているかを見るというのがいいかなと思っています。 例えばアプリケーションサーバと同梱されているものだったりとかすると、アプリケーションサーバの負荷がいき

                                Webサービスエンジニアが教えるサーバサイドのログ分析 情報を可視化して負荷状況を見よ
                              • オレ的EXPLAIN技を語っちゃうゾ - Qiita

                                メリークリスマス 本記事はPostgreSQL Advent Calendar 2021の25日目です。今年も面白い記事がたくさん揃いましたね!!! さて、みなさん今年のPostgreSQLライフはどんな感じでしたでしょうか? 私はというと、なんだかチューニングばっかりやってました。1案件でいろいろお手伝いすることはまあまああったのですが、複数から次々チューニングの相談をもらって、歴代継承者の個性を発現したデクくんのごとく駆け回ったのが今年のハイライトです。 (この綱渡り感、、、伝われ!!!) 俺たちは雰囲気でチューニングしている 今回上手くいったけど、あの時たまたまひらめいた1案をぶつけてみたら効果でたのであって、次善の策なんてなかったけど??って毎回思ってるから、雰囲気でやっていると思う、マジで。コミュニティのノリだと笑いが起きていいんですけど、少しでも勝率を上げるために、若手の前でド

                                  オレ的EXPLAIN技を語っちゃうゾ - Qiita
                                • [速報]AWS、SaaS構築のフレームワーク「AWS SaaS Boost」発表。ISVがすぐにSaaSを提供可能。AWS re:Invent 2020

                                  Amazon Web Servies(AWS)は、現在開催中のオンラインイベント「AWS re:Invent 2020」の2つ目の基調講演である「Partner Keynote」で、AWS上のSaaS構築を促進する「AWS SaaS Boost」を発表しました。 ソフトウェアベンダが自社のソフトウェアをSaaSとして提供するには、単にソフトウェアをクラウド上で実行するだけでなく、マルチテナント構成の実現、ユーザー向けポータルの構築、モニタリングシステムやダッシュボードの構築、課金管理、デプロイの自動化など、SaaSとしてのさまざまな周辺機能も用意しなければなりません。 AWS SaaS Boostは、AWSがこれまで蓄積してきたSaaS構築のノウハウやベストプラクティスが詰め込まれた、SaaSの見本となるフレームワークで、そのまま利用可能な参照環境(Reference Environmen

                                    [速報]AWS、SaaS構築のフレームワーク「AWS SaaS Boost」発表。ISVがすぐにSaaSを提供可能。AWS re:Invent 2020
                                  • はてなブログの DB を RDS for MySQL 8.0 にアップグレードした話 - Hatena Developer Blog

                                    この記事は、はてなエンジニア Advent Calendar 2023の2024年1月17日の記事です。 はてなエンジニア Advent Calendar 2023 - Hatena Developer Blog id:hagihala です。先日、はてなブログの DB を RDS for MySQL 5.7 から 8.0 へアップグレードしたので、工夫した点などを共有します。 Aurora MySQL 3.x にしなかった理由 MySQL 5.7 -> 8.0 で対応した変更点 character set や collation のデフォルトが変更される explicit_defaults_for_timestamp がデフォルトで有効になる SQL mode の変更 デフォルトの認証プラグインが caching_sha2_password になり、 mysql_native_passw

                                      はてなブログの DB を RDS for MySQL 8.0 にアップグレードした話 - Hatena Developer Blog
                                    • BigQueryへMySQLやPostgreSQLから直接ニアリアルタイムでレプリケーション可能に。「Datastream for BigQuery」登場

                                      BigQueryへMySQLやPostgreSQLから直接ニアリアルタイムでレプリケーション可能に。「Datastream for BigQuery」登場 Google Cloudは、BigQueryに対してMySQLやPostgreSQL、Oracle Databaseからニアリアルタイムで直接データのレプリケーションを可能にする新サービス「Datastream for BigQuery」をプレビューリリースしました。 オンプレミスやクラウドで稼働するMySQLやPostgreSQL、Oracle DatabaseでのOLTPによるデータ操作が、ETLツールなどを挟むことなくほぼリアルタイムでBigQueryに反映されるため、プライマリとなるデータベースのOLTP処理に負荷をかけることなく並行してBigQueryによる大規模データの分析処理が容易になります。 To stay compet

                                        BigQueryへMySQLやPostgreSQLから直接ニアリアルタイムでレプリケーション可能に。「Datastream for BigQuery」登場
                                      • 育児支援ダッシュボードを支える技術 - 人間だったら考えて

                                        この記事はなに? 構成・実装 育児記録 室内の温湿度 現在の天気 ダッシュボード 取得情報のデータベースへの格納 ダッシュボードに何を掲出すべきか? まとめ 参考 この記事はなに? 以下の育児支援ダッシュボードの構築ポストに触発され、自分もダッシュボートを作ってみました。 我が家の最終形態こんな 日中妻が試す→不満・希望を夕方俺に伝達→夜俺が治すみたいなサイクルを2週間回した後の図 pic.twitter.com/PHYRx7m1MS— Dr.10(どく・とぉと読んでください) (@Dr10_TakeHiro) 2023年10月2日 現時点で、自分が作ったダッシュボードは以下のようになっています。 育児支援ダッシュボード この記事では、上記の育児支援ダッシュボードを支える技術について解説します。 構成・実装 ダッシュボードには大きく分けて以下の3つの項目を載せています。 育児記録:「ぴよロ

                                          育児支援ダッシュボードを支える技術 - 人間だったら考えて
                                        • はじめてのPostgreSQLモニタリング入門 / PostgreSQL 11 Monitoring

                                          1,800万人が利用する『家族アルバム みてね』におけるK8s基盤のアップグレード戦略と継続的改善 / FamilyAlbum's upgrade strategy and continuous improvement for K8s infrastructure

                                            はじめてのPostgreSQLモニタリング入門 / PostgreSQL 11 Monitoring
                                          • Aurora MySQL でレコードが存在するのに SELECT すると Empty set が返ってくる事象を調査した話

                                            こんにちは。 KINTO テクノロジーズの DBRE チーム所属のp2skです。 DBRE(Database Reliability Engineering)チームでは、横断組織としてデータベースに関する課題解決や、組織のアジリティとガバナンスのバランスを取るためのプラットフォーム開発などを行なっております。DBRE は比較的新しい概念で、DBRE という組織がある会社も少なく、あったとしても取り組んでいる内容や考え方が異なるような、発展途上の非常に面白い領域です。 弊社における DBRE の取り組み例としては、あわっち(@_awache)による DBRE ガードレール構想の実現に向けた取り組みについてというテックブログや、今年の AWS Summit の登壇内容を是非ご覧ください。 今回の記事は、データベースに関する課題解決の事例として「Aurora MySQL でレコードが存在するのに

                                            • MySQL(InnoDB)のSQLパフォーマンスチューニングのエッセンス

                                              はじめに MySQL(InnoDB)でSQLのパフォーマンスチューニングをするときに役に立つ知識をエッセンスとしてまとめました。結合(JOIN)やB-treeインデックスの探索の仕組み、実行計画の基本的な見方を紹介します。 想定する読者は、SQLのパフォーマンスを改善する必要があるが実行計画をみてもいまいちピンと来ない方です。インデックスの作成の経験や、複合インデックスやカーディナリティの知識があることを前提にしています。目標は、実行計画の内容がよく分からない読者が、実行計画をみただけでクエリが実行される様子をイメージでき、自信を持ってクエリの改善にあたることができるようにすることです。 ストレージエンジンはInnoDBを前提としています。また、インデックスはB-treeインデックスを想定しています。全文検索の転置インデックスや空間検索のR-treeインデックスについては触れません。 イン

                                                MySQL(InnoDB)のSQLパフォーマンスチューニングのエッセンス
                                              • Aurora MySQL のバックアップは本当にそれでいいのだろうか? | CyberAgent Developers Blog

                                                技術本部 サービスリライアビリティグループ(SRG)の長谷川 @rarirureluis です。 #SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。 また Amazon Aurora MySQL(以下:Aurora MySQL)の話です。何でこんなに Aurora MySQL に関する記事ばっか書いてるのか僕も分かりません。 前回の Aurora MySQL のアップグレード方法のベストプラクティスはこちらです。 RDS Graviton2 に少ないリスクで切り替える方法を考えてみる【アップグレード編】 | CyberAgent Developers Blog 今回はバックアップについてです。 そのクラスター、間違ったクエリ流したときに

                                                  Aurora MySQL のバックアップは本当にそれでいいのだろうか? | CyberAgent Developers Blog
                                                • NULL嫌いのUPDATEしないDB設計 #DBSekkeiNight / DB design without updating

                                                  DB設計したいNight #6 正規化 [online] https://dbnight.connpass.com/event/177859/

                                                    NULL嫌いのUPDATEしないDB設計 #DBSekkeiNight / DB design without updating
                                                  • IPA DBスペシャリスト試験が秋に実施されると聞いたのでPostgreSQLと絡めて紹介してみる

                                                    第17回 PostgreSQL アンカンファレンス@オンライン 2020/09/24

                                                      IPA DBスペシャリスト試験が秋に実施されると聞いたのでPostgreSQLと絡めて紹介してみる
                                                    • MySQLでIn句に大量の要素を渡すとまずい理由

                                                      概要 MySQLでIN句を使用する時はIN句に渡す要素数に注意する必要があるとよく先輩エンジニアの方から聞いていたのですが、実際に大量の要素を渡すと何がまずいのかはっきり分かっていなかったので調べてみました。 この記事で伝えたいこと MySQLでIn句に大量の要素を渡すとまずい理由 まずい状況を回避するために気をつけるべきポイント 先に結論 MySQLでIN句に大量の要素を渡すとインデックスを貼っていたカラムだとしてもフルスキャンが発生しスロークエリになる可能性があります。 フルスキャンが発生してしまう条件はテーブルに設定してあるインデックスの内容とrange_optimizer_max_mem_size の設定値に依存しており、MySQL8でデフォルトの設定値 & シンプルなテーブルであってもおおよそ数万件の要素数をIN句に渡すとフルスキャンが発生する可能性があると考えられます。 検証環

                                                        MySQLでIn句に大量の要素を渡すとまずい理由
                                                      • Next.js + Vercel + Supabase を用いた高速アプリ開発 - RAKUS Developers Blog | ラクス エンジニアブログ

                                                        こんにちは!ラクス入社1年目のkoki_matsuraです。 本日は、Next.jsとVercel、Supabaseを用いて簡単なアプリを高速で開発する手順についてお話しできればと思います。 アジェンダは以下の通りです。 Next.jsとは ReactとNext.jsの違い Next.jsの特徴 Vercelとは Supabaseとは ToDoアプリ作成 Supabaseにデータベースを用意 VercelでNext.jsプロジェクトを作成・デプロイ・GitHub連携 VercelとSupabaseの連携 GitHubからクローン Vercelから環境変数を取得 Supabaseのデータベースに接続 コード編集 終わりに 参考文献 Next.jsとは Next.jsはReactベースのアプリケーションフレームワークです。 公式サイトではNext.jsとはReactを用いたWebアプリ開発で生

                                                          Next.js + Vercel + Supabase を用いた高速アプリ開発 - RAKUS Developers Blog | ラクス エンジニアブログ
                                                        • Git for Data「Dolt」というDBの話

                                                          ここ最近、何やらデータベースの相談をされることが何やら多くなってきたmasamikiです。 今、とあるプロダクトの開発をしようと、要件まとめたり設計したりたりしてるのですが、この仕組みをやるためには…version管理いるなぁ…gitが欲しいなぁ……となってます。 そして、調べてみたところ、2年も前のものですがこんな記事を見つけました。 「DoltとDoltHubが我々の結論だ」とおっしゃってます。 Doltとは Doltは、Gitリポジトリと同じように、フォーク、クローン作成、ブランチ、マージ、プッシュ、プルできる最初で唯一のSQLデータベースです。(← by Google翻訳) おぉ、まさしく、そのままんま、これだ。 他にも、GitRows とかも使えそうかな…と思ってみていたものの、どうやら今の要件にあうのあはDoltっぽそう。 上記事だと、他にもdata.world(Microso

                                                            Git for Data「Dolt」というDBの話
                                                          • Rails 6.0でDeprecatedになるActive Recordの振る舞い3つ - かみぽわーる

                                                            Deprecatedにした経緯というか背景が伝わってるのかどうかアレだと思ったので、ここに日本語にて書き記しておく。 Deprecate mismatched collation comparison for uniquness validator by kamipo · Pull Request #35350 · rails/rails · GitHub Active Recordのuniqueness validatorはデフォルトでcase sensitiveな比較をするんですが、これが、文字列のデフォルトのcollationがcase insensitiveなMySQLと相性が悪く、DB上のUNIQUE制約と一致しない振る舞いだったりINDEXが効率よく使えずDBが死ぬみたいな問題を引き起こしていました。 例: 本当にあったRailsの怖い話 僕も主に仕事のコードレビューで過去に何

                                                              Rails 6.0でDeprecatedになるActive Recordの振る舞い3つ - かみぽわーる
                                                            • 競走馬の血統をSQLで再現できる! 再帰クエリ徹底活用してみた - asoview! Tech Blog

                                                              アソビュー! Advent Calendar 2022の10日目です。 8月に入社しアソビューでバックエンドエンジニアをしている長友です。 みなさま再帰クエリ使っていらっしゃるでしょうか! 最近アソビューではmysqlの8系へのバージョンアップを行った為、再帰クエリの利用が可能となりました。 そこで本日は、アソビュー競馬部にも所属しておりサラブレッドの血統好きな私が再帰クエリを使ってツリー構造の血統表を作成してみるというお話です。 血統表とは ~ 本稿の目的 再帰クエリについて mysqlにおける再帰クエリの構文 再帰クエリとナイーブツリー構造 血統表作成における再帰クエリ 血統表のデータ構造 血統表を作成するクエリ ポイント1. 世代を表すgenerationを0で初期化し、各再帰の中でインクリメントする ポイント2. 世代内での配置を表すpositionを初期値1で定義し、再帰で取得す

                                                                競走馬の血統をSQLで再現できる! 再帰クエリ徹底活用してみた - asoview! Tech Blog
                                                              • RDSで接続数とメモリ消費量の調整事例 | 外道父の匠

                                                                RDS Auroraを使っているところで、OSの空きメモリが少なくなったアラートが出たので、それについて細かく考察したら、それなりの量になったのでまとめた感じです。 別にAuroraじゃなくRDS MySQLでも、MySQL Serverでも同じ話なのですが、クラウドならではの側面もあるなということでタイトルはRDSにしております。 RDSのメトリクス監視 RDSはブラックボックスとはいえ、必要なメトリクスはだいたい揃っているので、CloudWatch を見たり……APIで取得してどっかに送りつけたりして利用します。 なので、まずは接続数とメモリについて復習です。 SHOW STATUS 的には Threads_connected です。 CloudWatch Metrics 的には、DBInstanceIdentifier → DatabaseConnections です。 見た感じ、ど

                                                                  RDSで接続数とメモリ消費量の調整事例 | 外道父の匠
                                                                • MVCCとInnoDBでの実装について - shallowな暮らし

                                                                  こんにちは。id:shallow1729です。先日はredo logを中心にストレージエンジンについて解説を行いましたが、今回は同時実行制御、特にMySQLなど多くのデータベースで採用されているMultiversion Concurrency Control(MVCC)という技術にフォーカスしようと思います。 今回の記事ではまず前半でMVCCというものがどういうものかについて解説をして、次にMVCCの実装方法についてInnoDBの実装を参考にしながら見ていこうと思います。前提知識はあまりいらないと思いますが、リレーショナルデータベースの操作経験はあったほうがいいかなと思います。また、前回のストレージエンジンの解説で述べた内容はあまり説明しないので、軽く目を通してもらえると頭に入りやすいかなと思います。 shallow1729.hatenablog.com トランザクションの原子性 まずトラ

                                                                    MVCCとInnoDBでの実装について - shallowな暮らし
                                                                  • MySQL8.0のバックアップはどれがいいのか - CyberAgent SRG #ca_srg

                                                                    #SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。

                                                                      MySQL8.0のバックアップはどれがいいのか - CyberAgent SRG #ca_srg
                                                                    • Laravelへの異常な愛情 または私は如何にして心配するのを止めてEloquentを愛するようになったか

                                                                      動画: https://youtu.be/QHjRGPw34EI?si=MWb-1v1i1S5MG0eE プロポーザル: https://fortee.jp/phperkaigi-2023/proposal/6211083d-fc51-49a3-8b27-485d8e231b1f

                                                                        Laravelへの異常な愛情 または私は如何にして心配するのを止めてEloquentを愛するようになったか
                                                                      • 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
                                                                        • まだ PostgreSQL の開発で疲弊してるの? - Qiita

                                                                          { "plpgsqlLanguageServer.database": "データベース名", "plpgsqlLanguageServer.user": "ユーザ名", "plpgsqlLanguageServer.password": "パスワード", "plpgsqlLanguageServer.definitionFiles": [ // glob をサポート。 "**/*.sql", "**/*.psql", "**/*.pgsql" ], // Language Server が対応するファイルの拡張子はデフォルトで ['*.pgsql', '*.psql'] です。 // ( SQLite など他の RDS と競合させないためです。) // '*.sql' のファイルも対応させたい場合は、下記の設定を追加してください。 "files.associations": { "*.sq

                                                                            まだ PostgreSQL の開発で疲弊してるの? - Qiita
                                                                          • 本番でTableを1つDeleteしてしまいON DELETE CASCADEでさらに4つTable dataが消えた話 - Qiita

                                                                            起きた事 本番環境のデータ調査の依頼を受けた。その調査を受ける前に、それとは別で不要データを本番DBから削除する作業をMySQL Workbenchで行っていた。 本番DBで、データ調査を行う際にMySQL WorkbenchでSQLのselectと間違えてdeleteを実行してしまい、Tableを1つ丸ごとDeleteしてしまった。 ON DELETE CASCADEが親テーブルに設定されてしまっていたため、さらに4つのTable dataが芋づる式に消えてしまった。 ON DELETE CASCADEの説明としては、この記事がわかりやすかったです。 https://www.dbonline.jp/mysql/table/index11.html テーブルの構成(テーブル名などは例として挙げていて、実際のものとは多少異なります) 正しい設定 usersテーブルでuserを削除した時に、そ

                                                                              本番でTableを1つDeleteしてしまいON DELETE CASCADEでさらに4つTable dataが消えた話 - Qiita
                                                                            • マイグレーションしないRDBMS

                                                                              README.md マイグレーションしないRDBMSが欲しい! 課題 PostgreSQLなどの既存のRDBMSはスキーマを持つ。スキーマがあることは良いことだが、このスキーマのライフサイクルはアプリケーションコードのライフサイクルと乖離しがちで、結果として以下のような問題が発生する。 特に自動化をしない場合はマイグレーションをデプロイとは別に行う必要が発生する。これにより、 シンプルに作業が面倒。 承認フローが追加で必要になる。または、デプロイはレビューの管理下に置かれているのにマイグレーション側が適切に管理されないなどのミスマッチが起きる。 マイグレーション忘れ、マイグレーションのリバート忘れのリスクがある。 異なるバージョンのアプリケーションは同時に存在できるがスキーマは同時に存在できない。これにより、 ある種のスキーマ変更はローリングデプロイ環境下では実質的に実行できない。 (テー

                                                                                マイグレーションしないRDBMS
                                                                              • TypeScriptで世界一型安全な型レベルSQL Interpreterを作っている話

                                                                                こんにちは。DevOps芸人と化して久しいAndyです。 2020年の秋にTypeScript 4.1へTemplate Literal Typesが導入され、そのインパクトに俄かに一部の界隈がザワついたのは記憶に新しいかと思います。 今回は型プログラミングの可能性を大いに押し広げたTemplate Literal Typesを用いてSQL文を型レベルで解析し、その実行結果を型情報として導出するためのsqlptureというライブラリを作ったので紹介します。 Embedded content: https://github.com/andoshin11/sqlpture SQLの実行/検証対象はPostgreSQL v13です。 tl;dr SQL文を型レベルで解析・評価して返り値型を取得できるmini interpreterを作ったよ 型レベルのSQL validatorも作ってるよ 実際

                                                                                  TypeScriptで世界一型安全な型レベルSQL Interpreterを作っている話
                                                                                • 12年目を迎えた『ガールフレンド(仮)』におけるデータベースの負債解消への道のり【CAGC2024】

                                                                                  本セッションではPC/スマートフォン向けゲーム『ガールフレンド(仮)』のデータベースの負債とその解消の道のりをご紹介します。 当ゲームではデータベースにMySQLを採用しており、長年の運用を続けていく中で下記のような課題が発生してきました。 「突発的なユーザー増加で更新負荷に耐えられない」 「データ容量が肥大化しパフォーマンスやコストの悪化」 これら課題に対しどのような手段で対応したのか、またその対応によって新たな負債が生まれることとなったその経緯と解決策の歴史を解説します。 https://cagc.cyberagent.co.jp/2024/session/index.html?id=m7XRYTxp Copyright © CyberAgent, Inc.

                                                                                    12年目を迎えた『ガールフレンド(仮)』におけるデータベースの負債解消への道のり【CAGC2024】