並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 517件

新着順 人気順

postgresqlの検索結果321 - 360 件 / 517件

  • オレ的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
        • 安全なウェブサイトの作り方~失敗例~ - goruchan’s blog

          安全なウェブサイトの作り方を読んだので、理解した内容を自分なりにまとめておきます。資料 上記は3章構成になっていてそれぞれ長めの内容なので、ここでは3章の『失敗例』について、Ruby on Rails ではどうするかについてをまとめます。 SQL インジェクション OS コマンドインジェクション パス名パラメータの未チェック例(ディレクトリトラバーサル) 不適切なセッション管理例(セッション ID の推測) クロスサイト・スクリプティングの例(エスケープ処理) CSRFの例 HTTP ヘッダ・インジェクションの例 メールヘッダ・インジェクションの例 参考 SQL インジェクション 参考資料内の SQL インジェクション例を見て、Ruby on Rails ではどのように対策できるかを確認しました。 例えば、下記ような $uid, $pass をユーザ入力とし、SQL 文を動的に生成する場合

            安全なウェブサイトの作り方~失敗例~ - goruchan’s 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つの項目を載せています。 育児記録:「ぴよロ

                育児支援ダッシュボードを支える技術 - 人間だったら考えて
              • SQLite Internals: Pages & B-trees

                SQLite Internals: Pages & B-trees Author Name Ben Johnson @benbjohnson @benbjohnson Image by Annie Ruygt Fly.io runs apps close to users around the world, by taking containers and upgrading them to full-fledged virtual machines running on our own hardware around the world. Sometimes those containers run SQLite and we make that easy too. Give us a whirl and get up and running quickly. Ok, I’ll admi

                  SQLite Internals: Pages & B-trees
                • SQLiteの正式なWebAssembly版「SQLite3 WASM/JS」が登場

                  SQLiteの公式Webサイトに、SQLite3をWebAssembly化した「SQLite3 WASM/JS」プロジェクトのページが公開されました。 これまでさまざまなWebAssembly版SQLiteの試みが行われてきたなかで、初めてSQLiteの正式なサブプロジェクトとして開発されるWebAssembly版SQLiteになります。 下記はドキュメント「About the sqlite3 WASM/JS Subproject」からの引用です。 this subproject is the first effort "officially" associated with the SQLite project, created with the goal of making WASM builds of the library first-class members of the fa

                    SQLiteの正式なWebAssembly版「SQLite3 WASM/JS」が登場
                  • はじめての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パフォーマンスチューニングのエッセンス
                        • 本当にあった Web アプリケーションの脆弱性

                          この記事の目的 今まで Web アプリケーション製作を行った経験が無い方が「ちょっと個人開発で何か作ってみようかな!」と思ったときにうっかり脆弱性を作りこんでしまうことを少しでも防げたらいいなと考えました。 そのためにはまず脆弱性を他人事だと考えないことが大事だと思ったので、私が過去の開発現場において実際に遭遇したことがある Web アプリケーションの脆弱性の事例を幾つか紹介します。 紹介の前に注意喚起をします。 自分が管理しているわけではない Web アプリケーションに対し、依頼されてもいないのに脆弱性を探す行為は絶対にしないでください。その行為の内容によっては犯罪になる可能性もあります。 外部から渡されたデータを何の対策もなしに SQL に埋め込んでいる SQL インジェクション攻撃の説明でよくみられる例ですが、ログイン処理でユーザーが入力した ID とパスワードに一致するユーザー情報

                            本当にあった Web アプリケーションの脆弱性
                          • DB初心者が自作DBMS始めてみた - Qiita

                            この記事は DeNA 24 新卒 Advent Calendar 2023 の 23 日目の記事です。 TL;DR DBMSの基本的な仕組みを知るのに有益だったリソース CMUのDBMS講義 先人の素晴らしい自作DBMSの解説記事&ソースコードリーディング 小さな小さな自作DBMSの設計と実装 最小限SELECTやINSERTなど基本的なSQLが動く この記事のゴール データベースの内部構成を超ざっくり理解するために有用なリソースを知り、そして(全開発者のロマンである)自作 DBMS に一歩踏み出すきっかけになればうれしいです。 モチベーション 自分は普段業務でアプリケーションのような割と高レイヤーな開発がメインなこともあって、ミドルウェアやOS、ネットワークと言った低めのレイヤーに憧れを持っており、この気持ちをまずは自作DBMSをやってみることによって解放してあげようと思ったことがきっか

                              DB初心者が自作DBMS始めてみた - Qiita
                            • 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
                              • MySQLでIn句に大量の要素を渡すとまずい理由

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

                                  MySQLでIn句に大量の要素を渡すとまずい理由
                                • 関心の分離を意識した名前設計で巨大クラスを爆殺する - Qiita

                                  大量のメソッドを保有し、数千、数万行単位にぶくぶく膨れ上がった巨大クラス。別名「神クラス」とも「大きな泥団子」とも呼ばれる、長大で複雑で、様々なクラスと密結合で極めて変更が困難なアイツ。 そんな巨大クラスの退治に有効な、命名に関する考え方を紹介致します。 解決したい課題、狙う効果 数千、数万行単位の巨大クラスの登場を抑止する。 巨大クラスを爆砕し、小さなクラス群に分割する。 クラス結合度を下げ、影響範囲を小さくすることで保守コストや変更コストを下げる。 ダメな例 例えばECサイトの「商品」を考えてみます。 よくありがちなのは、商品をそのまま「商品クラス」と設計してしまうこと。 単純な商品クラスは、往々にして出品、予約、注文、発送など、様々なユースケースのクラスと結合してしまいがちです。 商品クラス自体も、結合したクラスに関連する知識(ロジック)を持ち始め、どんどん巨大化複雑化していきます。

                                    関心の分離を意識した名前設計で巨大クラスを爆殺する - Qiita
                                  • 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と絡めて紹介してみる
                                      • 保守性と生産性を両立する分析用SQL構造化の4原則 〜 構造化プログラミングの考え方をSQLに適用する

                                        ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。Yahoo!広告のデータマーケティングソリューション(以下、DMS)を開発しているデータアナリストの薄田です。 みなさんは、中間テーブル同士が複雑に絡み合い変更しようにも影響範囲を推定できず、手がつけられない分析パイプラインの保守で苦労された経験はないでしょうか? 私のチームでは数千行におよぶ分析用SQLをリファクタリングして、保守性と生産性を両立する分析パイプラインに生まれ変わらせることができました。 この記事ではリファクタリングを通して確立した、分析用SQLを構造化するための4原則を紹介します。4原則を意識しながらSQLを書くことで、高凝集・疎結合な分析パイプラインを作ることができます。 この記事では凝集度と結合度

                                          保守性と生産性を両立する分析用SQL構造化の4原則 〜 構造化プログラミングの考え方をSQLに適用する
                                        • 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の話
                                            • 存在するはなぜ二階の述語なのか|ミック

                                              拙著『達人に学ぶ SQL徹底指南書』の中で、EXISTS述語の使い方を解説している章があるのだが、そこでEXISTS述語だけが唯一SQLの中で二階の述語である、ということを説明している。これはEXISTS述語だけが行の集合を引数にとる述語だからである。それは分かるのだが、なぜ述語論理を考えた人(具体的にはゴットロープ・フレーゲ。タイトル画像のおじさんである)はこんな着想を得たのか、そこが分かりにくいという質問をしばしば受けることがある。確かに、数ある述語の中でなぜ「存在する」だけが二階の述語であるのか、というは直観的にすこし分かりにくい。なぜフレーゲはこんなことを考えたのだろう? この点について、述語論理の創始者でもあるフレーゲの議論を参照しながらかみ砕いて見ていきたいと思う。かなり理論的かつ哲学的な話になるので、興味ない方は読み飛ばしてもらってかまわない。とくにSQLの理解に支障のある話

                                                存在するはなぜ二階の述語なのか|ミック
                                              • sql.js

                                                sql.js is an SQL library for javascript containing a version of SQLite compiled for the web.

                                                • 競走馬の血統をSQLで再現できる! 再帰クエリ徹底活用してみた - asoview! Tech Blog

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

                                                    競走馬の血統をSQLで再現できる! 再帰クエリ徹底活用してみた - asoview! Tech Blog
                                                  • 【SQL】ちょっとしたパフォーマンスチューニングまとめ - Qiita

                                                    SELECT table_a.id, table_a.name FROM table_a INNER JOIN table_b ON table_a.id = table_b.id; メリットとしては、 どちらかのテーブルのid列のインデックスを使用可能 サブクエリがないことで中間テーブルが作成されない しかし、インデックスがない場合はEXISTSの方が良い場合があります ソートの回避 SQLでは暗黙的にソートが発生する演算が存在するので、 パフォーマンスにも影響するため、ソートが必要ない場合は考慮する必要があります ソートが発生する演算 GROUP BY句 ORDER BY 句 集約関数(SUM, COUNT, AVG) DISTINCT 集合演算子(UNION, INTERSECT, EXCEPT) ウィンドウ関数(RANK, ROW_NUMBER 等) メモリ上でのソートだけではなく

                                                      【SQL】ちょっとしたパフォーマンスチューニングまとめ - Qiita
                                                    • 【魚拓】【番外編】Excelの知識しかない人をRDBの担当者にする:SQLの知識がなくてもJetBrains AIを利用してRDBをノーコード生成!|kintoneにお...

                                                      ・ 05月02日 07時    取得の修正をアップデートします     ウェブ魚拓をご利用いただき、ありがとうございます。先日のアッ ... ・ 05月01日 19時    【追記】ウェブ魚拓のバージョンアップが終了しました     連携が上手に言ってなかった点から延長が行われてしまい、お手数 ... ・ 04月29日 23時    【重要・緊急】ウェブ魚拓のバージョンアップを行います     ウェブ魚拓のやや大きいバージョンアップを行います。5/1 A ...

                                                        【魚拓】【番外編】Excelの知識しかない人をRDBの担当者にする:SQLの知識がなくてもJetBrains AIを利用してRDBをノーコード生成!|kintoneにお...
                                                      • RDSで接続数とメモリ消費量の調整事例 | 外道父の匠

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

                                                          RDSで接続数とメモリ消費量の調整事例 | 外道父の匠
                                                        • まだ 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
                                                          • 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
                                                                  • C言語でSQLiteのクローンを作るチュートリアルやった - valid,invalid

                                                                    2019年12月の冬休みに1週間程かけて"Let's Build a Simple Database"という、C言語でSQLiteのクローンを作るチュートリアルをやりました。この存在を教えてくれた同僚に感謝 :pray: cstack.github.io チュートリアルの内容 Richard Feynman先生の“What I cannot create, I do not understand.”という言葉が掲げられているように、データベースを作ることでデータベースをより深く理解することに主眼が置かれているチュートリアルです。 これは重要事項説明かつタイトル詐欺に関する謝罪なのですが… 残念ながらこのチュートリアルは完成しておらず、Part 13が2017-11-26に公開されたのを最後に更新が止まってしまっており、以下の13章しかありません。 Part 1 - Introduction

                                                                      C言語でSQLiteのクローンを作るチュートリアルやった - valid,invalid
                                                                    • SQLってなんだ?「だれでもわかる」教え方とは:朝日新聞デジタル

                                                                      凄腕しごとにんデータミックス 社長 堅田洋資さん(37) 「ビッグデータ」「人工知能」「機械学習」。そこまでは何となくわかる。でも「SQL(エスキューエル)」「Python(パイソン)」「R(アール)」と言われたら、聞こえないふり……。 そんな経営陣、管理職が多くないか。「経験と勘」頼みでデータがあまり活用されないのは、説明されても上司が重要性を分からないからではないか。ビッグデータを扱う「先端IT人材」は2020年時点で約5万人足りない、という政府推計もある。そう考え、データ分析の専門家を育てる社会人向け事業を17年に立ち上げた。 「中学数学からわからない人でもわかる」ことをめざす講義に定評がある。起業から3年弱。大手企業の研修も受け入れ、巣立った専門家の「卵」は約100人になった。 ちなみにSQLやPythonは、データ分析に使われるプログラミング言語だ。 SQLって何ですか?とたずね

                                                                        SQLってなんだ?「だれでもわかる」教え方とは:朝日新聞デジタル
                                                                      • [翻訳]ShopifyにおけるRuby on Railsで速いコードを書く方法

                                                                        こちらの記事は翻訳記事となります。 原著者の許諾を得て翻訳・公開しております。 英語記事: How to Write Fast Code in Ruby on Rails原文公開日: 2019/10/08著者: Gannon McGibbonURL: https://engineering.shopify.com/blogs/engineering/write-fast-code-ruby-rails はじめにShopifyでは、ほとんどのプロジェクトの開発フレームワークにRuby on Railsを使用しています。 RailsとRubyはともにパフォーマンスに対するスティグマ(偏見)が存在します。 多くの個人や企業が、Rails以外での解決方法を探しています。 しかし一方で、私たちShopifyではRuby on Railsを採用して、毎分何百万ものリクエスト(requests per

                                                                          [翻訳]ShopifyにおけるRuby on Railsで速いコードを書く方法
                                                                        • 本番で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】
                                                                                • Rust で SQLite を再実装している - kawasin73のブログ

                                                                                  セキュリティを盾に一点突破。どうもかわしんです。最近 Rust で SQLite を実装してます。 以前の記事で HTTP Parser を Rust で実装しようとしたものの、すでに実装されていたので断念しましたが、いい題材を見つけました。SQLite です。開発中のリポジトリはこれです。 github.com 今の時点では、Read Only で1つの WHERE 句を持った SELECT 文しか処理できないですが、以下の機能を実装しています。 sqlite3 で生成された database ファイルの読み取り (cursor.rs, btree.rs, record.rs) SQL 文の解析 (token.rs, parser.rs) テーブルとインデックスのメタデータのパース (schema.rs) 動的なファイルの読み込み (pager.rs) SQL クエリとスキーマ情報を元に

                                                                                    Rust で SQLite を再実装している - kawasin73のブログ