並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 1777件

新着順 人気順

postgresの検索結果41 - 80 件 / 1777件

  • リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得ら

    リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得られるということなのだと思うので、可能であればMVCCを採用したいのですが、あまり初学者向けの実装例も見当たらず、どうしたものかと悩んでおります。 SS2PL/S2PLとMVCCの実装の難易度・工数はどの程度違うものなのでしょうか? また、初めてリレーショナルデータベースシステムを開発する者

      リレーショナルデータベースシステムを趣味で開発している者です。 現在、開発中のシステムを並行トランザクションへ対応させることを検討しており、どのような手法があるのか調べたところ、SS2PLもしくはS2PLという手法が私と同じように自作をされている方々の中では多く採用されているようだと分かりました。 一方で、PostgreSQLやMySQLなどのプロダクションレベルで利用されているシステムではMVCCと呼ばれる手法が採用されているということも分かりました。 きっと後者の方が多くの場合で高いスループットが得ら
    • GitHub、1200台以上のMySQL 5.7を8.0へアップグレード。サービス無停止のまま成功させる

      GitHub、1200台以上のMySQL 5.7を8.0へアップグレード。サービス無停止のまま成功させる GitHubが提供するGitHub.comは、世界最大のソースコード管理システムを始めとするソフトウェア開発者向け支援サービスを提供しています。 そのGitHub.comはRuby on Railsで構築されており、同社はつねにRubyとRuby on Railsをアップデートし続けていることを今年(2023年)4月に明らかにしています。 参考:GitHubは200万行規模のRailsアプリケーションであり、毎週RailsとRubyを最新版にアップデートし続けている そして同社はこのGitHub.comを支える1200台以上のMySQL 5.7を、GitHub.comのサービスレベルを維持したまま1年以上かけてMySQL 8.0にアップグレードしたことをブログで明らかにしました。 Up

        GitHub、1200台以上のMySQL 5.7を8.0へアップグレード。サービス無停止のまま成功させる
      • 主要RDBMS製品の比較 – アーキテクチャ, スキーマ, データベース, メモリ | コーソルDatabaseエンジニアのBlog

        Microsoft SQL ServerMySQLOracle DatabasePostgreSQLSolarWinds DPAデータベース運用主要RDBMS製品の比較 2022.09.01 渡部 亮太 主要RDBMS製品の比較 – アーキテクチャ, スキーマ, データベース, メモリ Oracle ACE Proの渡部です。 主要なRDBMS製品についてアーキテクチャを比較します。 大枠を整理することが最大の目的です。細かい例外事項や拡張機能は適宜記載を割愛しています。 2022年9月時点の最新バージョンをベースに記載していますが、記載内容にバージョン依存は少ないはずです。 時間ができた時に随時追記予定です。 もし誤りを見つけた場合は、優しく教えていただけると嬉しいです。→ https://twitter.com/wrcsus4 or ryota.watabe at cosol dot

        • DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識 - CARTA TECH BLOG

          みなさん、おはようございます! CARTA fluct エンジニア の なっかー@konsent_nakka です。 CARTA TECH BLOG アドベントカレンダー 12/14ということで、普段DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識をざっとまとめてみました。 とりあえずこれだけ読んでおけば最低限は困らない、もし何か困った時にはあそこで出てきた内容をもう少し深く調べて見るか、というきっかけになれば良いなと思います。 厳密な定義よりも普段DBを扱う中でロックについてあまり意識したことがないような人にもすっと入ってくるように簡単な表現を優先して書いていますがご了承ください。 目次 留意事項 排他ロックと共有ロック トランザクション分離レベル SELECTのロックレベルを変更する 共有ロック: LOCK IN SHARE MODE 排他ロ

            DBのロックについてあまり意識したことがない人に向けた実は覚えておきたいロックについての知識 - CARTA TECH BLOG
          • Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - GMO Flatt Security Blog

            ※本記事は筆者styprが英語で執筆した記事を株式会社Flatt Security社内で日本語に翻訳したものになります。 TL;DR Node.jsのエコシステムで最も人気のあるMySQLパッケージの一つである mysqljs/mysql (https://github.com/mysqljs/mysql)において、クエリのエスケープ関数の予期せぬ動作がSQLインジェクションを引き起こす可能性があることが判明しました。 通常、クエリのエスケープ関数やプレースホルダはSQLインジェクションを防ぐことが知られています。しかし、mysqljs/mysql は、値の種類によってエスケープ方法が異なることが知られており、攻撃者が異なる値の種類でパラメータを渡すと、最終的に予期せぬ動作を引き起こす可能性があります。予期せぬ動作とは、バグのような動作やSQLインジェクションなどです。 ほぼすべてのオンラ

              Node.jsのMySQLパッケージにおけるエスケープ処理だけでは防げない「隠れた」SQLインジェクション - GMO Flatt Security Blog
            • Lampはどのように海外で人気になったか

              大きな知名度はなく、知る人ぞ知るバンドとなっていますが、コアな音楽ファンの間で根強い人気を誇っています。 そのLampがどういうわけか「多くの海外の音楽リスナーに聴かれてる」と、最近ネットで話題となっています。 いいバンドだけど寡作で地味、というイメージのLampが海外で異様な人気が出てるというのは聞いてたけどマジだった。現時点で坂本龍一やNujabesを超えて坂本慎太郎やフィッシュマンズの10倍聴かれてる pic.twitter.com/ykVPc7ohl9 — サムソン高橋 (@samsontakahashi) August 27, 2023

                Lampはどのように海外で人気になったか
              • サーバダウンしたニコニコ漫画に何が起きていたのか - BOOK☆WALKER inside

                こんにちは。メディアサービス開発部Webアプリケーション開発課の奥川です。ニコニコ漫画のバックエンド開発を担当しています。 2021年初頭、ニコニコ漫画である作品の連載が開始されました。それに端を発する数カ月間のサーバ障害により、ユーザーの皆様には大変ご迷惑をおかけしました。 少し前の話にはなりますが、当時ニコニコ漫画のサーバでは何が起こっていたのか、どのような対応を行ったのかを振り返ってみたいと思います。 1号棟(事の起こり) 2021/01/08 問題の作品(以後、「作品I」*1と記述します)の第1話が投稿されます。その過激な内容からSNSなどでは一部で話題になりましたが、まだニコニコ漫画へのアクセスも穏やかなものでした。 2021/01/22 その2週間後、「第2話(前編)」の公開から事件が起こります。 ピークタイム最中の12:22頃から、まずmemcachedがCPU Utiliz

                  サーバダウンしたニコニコ漫画に何が起きていたのか - BOOK☆WALKER inside
                • PostgreSQLの仕組みから学ぶために必要な資料 - そーだいなるらくがき帳

                  質問されることが多いのでPostgreSQL初学者が運用を行うためにしっておく知識に必要な内容をまとめる。 PostgreSQLの基本的なアーキテクチャ PostgreSQLのアーキテクチャを知らないと自分がやっている作業が危険な作業かどうかわからないし、パラメータの意味もわからない。 そこで以下のリンクを読むと良い。 富士通が後述の資料を参考にまとめたのだろうなと思われる記事。 非常によくまとまっているのでわかりやすい。 www.fujitsu.com もっと細かく知りたいならPostgreSQL Internalsがおすすめ。 富士通の資料と重複するところがあるがこっちが本家。 Githubで管理されているので誤字脱字などあったら気軽にPRを出してほしい。 www.postgresqlinternals.org PostgreSQL Internalsが少し古いので最新事情で知りたい場

                    PostgreSQLの仕組みから学ぶために必要な資料 - そーだいなるらくがき帳
                  • あまり知られていないPostgreSQLの機能 | POSTD

                    あなたが知らない既存機能があるかもしれません! マイクロソフト社は2006年、Microsoft Officeの新バージョンで追加してほしい機能について、顧客調査を実施しました。驚いたことに、ユーザが希望した機能の90%以上はすでに実装されており、その存在が知られていないだけであることが判明しました。機能の「見つけにくさ」の問題の解決策として同社が考案したのが、現在のMicrosoft Office製品でおなじみの「リボンUI」です。 この問題はOfficeに限ったものではありません。日々使用するツールの機能をすべて把握している人はほとんどいません。PostgreSQLのように大規模なツールであればなおさらです。数週間前にPostgreSQL 14がリリースされたばかりなので、この機会にPostgreSQLのあまり知られていない機能に注目してみたいと思います。 この記事では、Postgre

                      あまり知られていないPostgreSQLの機能 | POSTD
                    • データベースのロックの基礎からデッドロックまで

                      データベースのロックについて、資料を読んだり実際に試してみたので、学んだことを整理してみようと思います。はじめにロックについての基本的な知識を整理して、最終的にはデッドロックとその対策について説明します。 使用したソフトウェアのバージョン MySQL 8.0.31 この記事ではMySQLを使用しています。その他のデータベースについては、基本的な部分は共通していると思いますが、異なる点があることをご了承ください。 ロックとは何か(概要) ロックはデータの更新を正しく行うための仕組みの一つで、あるデータに対する更新処理を制御するためのものです。ここで、データを正しく更新するとはどういうことかを説明するために、口座への振込を例に考えてみます。 例えば、口座Aから口座Bに1万円の振込を行うとします。このとき、口座Aの出金処理と口座Bの入金処理は、必ず両方が成功しなければなりません。このための仕組み

                        データベースのロックの基礎からデッドロックまで
                      • PlanetScaleというサーバレスDBが凄く勢いのあるサービスらしいのでQuick Startやってみた - Qiita

                        PlanetScaleというサーバレスDBが凄く勢いのあるサービスと聞いて、公式にクイックスタートがあったのでやってみました。 環境 PC: MacBook Pro (Intel Core 2016) OS: macOS Montery12.2.1 では概要から確認していきます。 サーバーレスDBとは サーバがない、のではなく、サーバ管理や検討が不要 AWS Lambda(NoSQL)など PlanetScaleとは PlanetScale年表 2010年頃 YouTubeが急激に成長し、データベースが爆発しそうになっていたので、Sugu氏ともう一人のYouTubeのエンジニアがオープンソースプロジェクト「Vitess.io」(ヴィテス)を立ち上げる 2016年頃 MySQLでバイナリプロトコルを扱えるようにしたことで、VitessはYouTube以外の企業にとっても魅力的なシステムになり

                          PlanetScaleというサーバレスDBが凄く勢いのあるサービスらしいのでQuick Startやってみた - Qiita
                        • GitHub - techschool/simplebank: Backend master class: build a simple bank service in Go

                          This repository contains the codes of the Backend Master Class course by TECH SCHOOL. You can also find it on Udemy at this link. And don't hesitate to join Tech School's Discord group to chat directly with me and other students. In this course, you will learn step-by-step how to design, develop and deploy a backend web service from scratch. I believe the best way to learn programming is to build

                            GitHub - techschool/simplebank: Backend master class: build a simple bank service in Go
                          • PostgreSQLのアーキテクチャー概要|PostgreSQLインサイド

                            PostgreSQLには、用途や環境に応じて様々な構成を組み、最適なパフォーマンスで動作させられるよう、設定ファイルpostgresql.confに多くのパラメーターが存在します。そのパラメーターを正しく設定し調整を行うためには、PostgreSQLのアーキテクチャーを理解する必要があります。ここでは、押さえておきたい、PostgreSQLの基本的なアーキテクチャーについて説明します。なお、この記事で対象にしているPostgreSQLのバージョンは9.5以降です。 1. PostgreSQLの基本構成 PostgreSQLの基本的な構成について説明します。はじめに、主なプロセス、メモリー、および、ファイルについての構成図を示します。 図1 PostgreSQLの基本構成 PostgreSQLを構成する主なプロセス、メモリー、ファイルについて、その用語と概要を説明します。 リスナープロセス

                              PostgreSQLのアーキテクチャー概要|PostgreSQLインサイド
                            • MySQLのインデックスの貼っていいとき悪いときを原理から理解したいよ😭

                              今回答えを出したい問いはこちら!! インデックスはどのような仕組みを以て、何を実現したいものなのか それを踏まえたとき、インデックスはどういう場合になぜ貼る方が良いのか。また、どういう場合になぜ貼らない方が良いのか 大体分かっているよって人はサヨナラって感じのおさらい記事だぜ!!!!それじゃいってみよー🎉 あと、おれは今回MySQLにしぼっていくぜ👶 ってわけでOracleとかに興味があるやつは引き返しな! indexの概要 公式の見解としては「where句を使ったselectクエリの実行速度を向上させるために実装されている、各行へのポインターのような振る舞いをする仕組み」って感じ👶 The best way to improve the performance of SELECT operations is to create indexes on one or more of t

                                MySQLのインデックスの貼っていいとき悪いときを原理から理解したいよ😭
                              • PostgreSQLとMySQLのメジャーバージョンアップのためのチートシート作った - そーだいなるらくがき帳

                                中国地方DB勉強会 in 岡山の登壇資料です。 そのうちここで登壇動画が公開されることでしょう。 肝心なチートシートは以下のとおり。 PostgreSQL gist.github.com MySQL gist.github.com チートシートだけじゃわからない!困ってる! Have Fun Techがバージョンアップのサポートしますのでお気軽にご相談ください。 have-fun.tech まとめ やっぱ中国地方DB勉強会は最高だぜ!

                                  PostgreSQLとMySQLのメジャーバージョンアップのためのチートシート作った - そーだいなるらくがき帳
                                • ECSとRDSをやめて、AWSコストを9割削減しました

                                  はじめに こんにちは。BEENOSのがれっとです。 AWS上にアプリケーションを構築する際、一般的なのはECS + RDSという組み合わせです。私も社内システムをそのような形で構築しました。 しかし、使わないときにもインスタンスが動き続けてしまうため、大量のトラフィックを捌かないアプリケーションにおいてはコストが見合わないものとなってしまいます。 そこで、ECS + RDSという構成からLambda + EFSの構成に社内システムを移行して、コスト削減した話を紹介します。 前提 以下の構成のアプリケーションを移行しました。 Blitz.js 内部に下記を使用 Prisma Next.js PostgreSQL テーブル数は12 (_prisma_migrationsテーブルを含めて13) AWS 構成図 移行前 移行後 リレーショナルデータベースを用いることが必須のアプリケーションを構築す

                                    ECSとRDSをやめて、AWSコストを9割削減しました
                                  • たぶんもう怖くないGit ~Git内部の仕組み~ - Qiita

                                    追記 先日外部向けに、この記事の内容に追加補足などを加えて発表しました。動画のアーカイブ、資料も公開しましたので、もし動画の方がわかりやすい方はこちらをオススメします。 注意: 動画の質疑の中で、 github のリリース機能が、アノテートタグを使っていると明言してしまいましたが、間違いです。gitのデータ上はただの軽量タグで、 release の内容は軽量タグに紐づく形で、 github のアプリケーション上で管理されているはずです。 はじめに 調べてもう1年放置していた内容なんですが、アドベントカレンダーで重い腰を上げました。 Gitの内部の仕組みを知りたい(動機) 毎日使うといってもいいGitですが、どうやって履歴を管理してるんだとか、よくわからないまま使っているのが急に怖くなりました。 Gitを触り始めで、よく以下のような疑問が沸くと思います。 どうやってGitは履歴を管理してるん

                                      たぶんもう怖くないGit ~Git内部の仕組み~ - Qiita
                                    • MySQLでIN句の中に大量の値の入ったクエリがフルスキャンを起こす話 - freee Developers Hub

                                      こんにちは、freee Developers Advent Calendar 2021、19日目のid:shallow1729です。昨日はtdtdsさんで【マジで】サイバー演習シナリオの作り方【怖い】でした!障害訓練後に攻撃方法を解説された時はリアリティの高さに驚きました。 僕はMySQLを使っていて発生した不思議な挙動の調査の話をしようと思います。 今回問題となったクエリ 今回話題にするクエリは以下のようなシンプルなものです。 SELECT * FROM hoge WHERE id IN (...) MySQLのパラメーター次第ですが、デフォルトの設定だとこのIN句の中の値の数が数万になると適切なインデックスが用意されていてもフルスキャンが発生する事がありました。このクエリがテーブルのほとんどのレコードを網羅するような場合や高速でレコードを大量にinsertして統計情報が追いつかないケー

                                        MySQLでIN句の中に大量の値の入ったクエリがフルスキャンを起こす話 - freee Developers Hub
                                      • 非エンジニアのSQL学習ことはじめ 〜1日1時間・3か月でSQLがそこそこできるようになる勉強方法と無料の学習サイト・おすすめ書籍〜

                                        これは何「来年こそはSQL書けるようになるぞ」と思ってる方に向けた、1日1時間・3か月でSQLそこそこできるようになる学習方法について書いた記事です長文がつらつら書いてある本稿ですが、要するに言いたいことは

                                          非エンジニアのSQL学習ことはじめ 〜1日1時間・3か月でSQLがそこそこできるようになる勉強方法と無料の学習サイト・おすすめ書籍〜
                                        • MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ

                                          こんにちは。クラウド運用チームの飯塚です。 私たちは cybozu.com 本番環境の MySQL を昨年末から順次 8.0 系へアップグレードしており、前回の定期メンテナンスにおいて全てのインスタンスのアップグレードを完了しました。この記事では、私たちが MySQL 8.0 への移行に取り組んだ理由と必要になった対応について紹介します。 なぜ MySQL 8.0 へ移行したのか GTID-based レプリケーションにおける制限の緩和 再起動時に AUTO_INCREMENT のカウンタが巻き戻る問題の解消 実際に対応が必要だった MySQL 8.0 の変更点 utf8mb4 の照合順序のデフォルト値の変更 SQL_CALC_FOUND_ROWS と FOUND_ROWS() が deprecated に Connector/J のメタデータ取得処理の性能低下 sys.innodb_lo

                                            MySQL 8.0 への移行が完了しました ~さようなら全ての MySQL 5.7~ - Cybozu Inside Out | サイボウズエンジニアのブログ
                                          • Bulk insertでも20時間以上かかっていたMySQLへのインサート処理を1時間以内にする - エムスリーテックブログ

                                            この記事はエムスリー Advent Calendar 2022の30日目の記事です。 前日は id:kijuky による チームメンバーのGoogleカレンダーの休暇予定一覧をスプレッドシート+GASで作った でした。 AI・機械学習チームの北川(@kitagry)です。 今回はMySQLへのインサートを20倍以上高速化した話について書きます。 仕事をちゃんとしてるか見張る猫 TL; DR はじめに 今回のテーブル バイナリログを無効化する 追試 LOAD DATA INFILE 追試 テーブルの正規化 インデックスを一時的に剥がす まとめ We are hiring!! TL; DR バイナリログをオフにする LOAD DATA INFILEを使う インデックスを一時的に消す はじめに AI・機械学習チームではサイトトップからアプリに至るまで多くの推薦システムがあります。 そこでは推薦ロ

                                              Bulk insertでも20時間以上かかっていたMySQLへのインサート処理を1時間以内にする - エムスリーテックブログ
                                            • 結局、Go言語をやめる理由はなかった件 - Qiita

                                              この記事は Go 2 Advent Calendar 14日目の穴埋め記事です。 はじめに @okdyy75 さんによる Go 5 Advent Calendar 14日目の の記事「だから僕はGo言語を辞めた」 が「ベンチマークっていうのはこうやるんだよ」というのを説明するために反面教師的な意味で良い教材だと思ったので、反証記事を書きたいと思います。 ベンチマークを取りながらコードを改善して、最終的にGoは遅くないからやめる必要はないということ、そして、なぜ遅いという結論になってしまったのかを掘り下げていきたいと思います。 下準備 幸いなことに、ベンチマークのソースコードがGitHubにある ので、こちらを実行しながら問題点を改善していきましょう。 ちゃんとコードが上がっているのは素晴らしいですね! 一方で、元記事には測定環境が明記されていませんでしたので、同じ環境で測定することはできま

                                                結局、Go言語をやめる理由はなかった件 - Qiita
                                              • SQLの達人への道: MySQLでの高速・効率的クエリ作成術 - Qiita

                                                概要 この記事では、MySQLでのSQLクエリのパフォーマンスを最大限に引き出すための効率的な書き方を解説します。アプリケーションの応答速度を向上させることは、ユーザーエクスペリエンスの大幅な改善に直結します。この記事を通じて、初心者から中級者のデータベース管理者や開発者は、SQLクエリの基本から高度な最適化テクニックまで、幅広い知識を習得できることを目指しています。 MySQL 8.0での検証を基にしていますが、その他のバージョンでの動作は保証されません。この記事は継続的に更新されます。 主な内容 このセクションでは、検証データの作成手順を含め、インデックスの利用、JOIN操作の最適化、サブクエリとビューの利用、クエリキャッシュの活用など、効率的なクエリの書き方について解説します。 検証データの作成 MySQLサーバーへの接続方法から始め、テスト用データベースとテーブルの作成、ダミーデー

                                                  SQLの達人への道: MySQLでの高速・効率的クエリ作成術 - Qiita
                                                • Re: 履歴テーブルから最新の1件を取ってくる方法

                                                  そーだいさんが執筆された記事で、履歴テーブルから最新の1件を取ってくる方法について解説している。PostgreSQLの例だと以下のようなユーザーの履歴データに対し: CREATE TABLE history ( id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL, data TEXT, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); INSERT INTO history (user_id, data, created_at) VALUES (1, 'First entry of user1', '2024-01-01 10:00:00'), (1, 'Second entry of user1', '2024-01-02 09:30:00'), (2, 'First entr

                                                    Re: 履歴テーブルから最新の1件を取ってくる方法
                                                  • 100秒でMySQLのローカル環境をDockerで作って、データも自動で入れる。最強のSQL練習環境構築法

                                                    【2022/2/26 追記】 主にはてブコメントで様々なご指摘を頂いたので、タイトルの修正&内容を一部追記しました。分かりにくいタイトルを付けてしまい申し訳ございません。ご指摘ありがとうございます。 もともと本記事は自分用のメモを兼ねて駆け出しエンジニアの人が数人参考にしてくれたらいいかな、程度の気持ちで書いたものでした。 現在はてなブックマークのテクノロジーカテゴリーで 1 位になっており、予想の 1000 倍以上の人に見ていただける記事になってしまいました。 今後も精進します、ありがとうございます! 特に理由もなくローカルに MySQL を入れて遊びたくなる気持ちって定期的に湧きますよね。 私は湧きます、半年に 1 回ぐらい。 業務ではフロントを触ることが多く、DB はそれほど触りません。 そのため久々に MySQL をローカルで立ち上げようとするといつも手順を忘れてしまっていて、なん

                                                      100秒でMySQLのローカル環境をDockerで作って、データも自動で入れる。最強のSQL練習環境構築法
                                                    • PostgreSQLはなぜMySQLを上回れた? PostgreSQL 17で見えた生成AI時代のデータベース

                                                      世界トップに躍進したPostgreSQL データベース管理システム(DBMS)の世界で、大きな変化が起きている。長年、企業システムの中核を担ってきたのはMySQLだが、この数年でPostgreSQLがトップの座に躍進、またAI時代の到来により、そのポジションをさらに強固なものにしているのだ。 スタックオーバーフローが実施した開発者調査(2024年版)によると、PostgreSQLは2年連続でデータベースのトップに君臨、その利用率は51.9%に上る。これに対し、MySQLは39.4%にとどまり、両者の差は広がる一方となっている。 この数字の意味するところは大きい。わずか6年前の2018年、MySQLの利用率は59%を占めていたが、PostgreSQLは33%にすぎなかった。この劇的な逆転は、PostgreSQLの技術的優位性と時代のニーズが合致した結果といえる。 そもそもPostgreSQL

                                                        PostgreSQLはなぜMySQLを上回れた? PostgreSQL 17で見えた生成AI時代のデータベース
                                                      • Dockerコンテナのpostgresqlがマルウェアに感染した件について - Qiita

                                                        表示されたプロセス一覧の中からCPU負荷を極端に使用しているプロセスを探したところありました。 「/tmp/kinsing」 「/tmp/kdevtmpfsi」 この2つのプロセスがCPU負荷300%を超えていました。 kinsing(kdevtmpfsi)マルウェア このDockerマルウェアは感染したDockerホストで仮想通貨をマイニングしてCPU負荷を掛ける仮想通貨マイニングマルウェアです。ここではマルウェア自体の機能と解析の解説は記述しません。 詳しくは以下のリンク先を参考にしてください。 脅威:コンテナ環境を対象としたマルウェア「Kinsing」が増加中 #AquaSecurity #セキュリティ #コンテナ #マルウェア コンテナを標的にしたマルウェア、Aqua Security Softwareが攻撃手法を解説 感染経路 誤って外部公開されたDocker APIが主な感染経

                                                          Dockerコンテナのpostgresqlがマルウェアに感染した件について - Qiita
                                                        • パスワードがハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題 - Qiita

                                                          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                                            パスワードがハッシュ値で保存されているサイトのSQLインジェクションによる認証回避の練習問題 - Qiita
                                                          • MySQLのインデックスですが、B-treeではなくB+treeを使用するのはどうしてなのでしょうか? | mond

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

                                                              MySQLのインデックスですが、B-treeではなくB+treeを使用するのはどうしてなのでしょうか? | mond
                                                            • MySQLで発生し得る思わぬデッドロックと対応方法

                                                              はじめに この記事は実際の業務で発生した MySQL のデッドロックとそのいくつかの回避方法や対応方法を(テーマは変えて)手元で実行できるコードを用いて解説する記事です。具体的には「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターンの記事で紹介されている「1on1 チャットサービス」で紹介されているデッドロックとデータベースレイヤでは同じ状況だったのですが、記事で紹介されている方法とは別の方法でデッドロックを回避する必要があったため、同じ状況に遭遇した人の助けになればという思いで記事を書きました。また、こちらの記事が無ければ私自身も現象を理解するのにもっと苦労したと思うので、この場を借りてお礼申し上げます! 出金サービス履歴登録サービスを例に考える コードと説明が https://github.com/shuntagami/withdrawal_

                                                                MySQLで発生し得る思わぬデッドロックと対応方法
                                                              • 2025年度 新卒研修「100分で学ぶ サイバーエージェントのデータベース活用事例とMySQLパフォーマンス調査」 | CyberAgent Developers Blog

                                                                こんにちは、Service Reliability Group(SRG)の鬼海 雄太(@fat47)です。 SRGは主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。 本記事では2025年度のサイバーエージェントの新卒研修で「100分で学ぶ サイバーエージェントのデータベース活用事例とMySQLパフォーマンス調査」という研修を実施した話と、その内容について簡単に紹介しています。 例年の新卒技術研修について サイバーエージェントでは毎年、新卒のエンジニア全員を対象にした技術研修が実施されており、 セキュリティ研修やAWSなどのクラウド実習、ハッカソン形式のチーム開発研修 などの研修が実施されています。 しかし、データベースに関する内容は新卒のエンジニア全員を対象にした研修では実施されておらず、各部署(子

                                                                  2025年度 新卒研修「100分で学ぶ サイバーエージェントのデータベース活用事例とMySQLパフォーマンス調査」 | CyberAgent Developers Blog
                                                                • SQL Chat

                                                                  Chat-based SQL Client and Editor for the next decade

                                                                  • 【衝撃】AWSのRDSがデータを失わないBlue/Greenデプロイに対応しました #reinvent | DevelopersIO

                                                                    「最近は、データベースもB/Gデプロイできるらしいよ?」 「そりゃそうやろ。B/Gデプロイなんて、最近当たり前……… へ?DBが?無理でしょ?ほぇ?どういうこと?」 最初アップデートのタイトルを見たときの、ハマコーの率直な感想です。 Blue/Greenデプロイは、現行バージョンのトラフィックを活かしたまま新バージョンを動作確認し、問題なければ新バージョンをリリースするという、最近の安全なデプロイの概念において無くてはならないものです。 同時に新旧バージョンを稼働させるため、基本的にはステートレスなアプリケーション・サーバーにおいて利用するものという固定概念があったのですが、それをデータベースに対して既存のAWSの技術を組み合わせつつAWSらしいマネージドな仕組みで解決しようという、意欲的なリリースです。制約事項もそれなりにあるので、皆さんの運用ワークロードに当てはまるかは、事前の検証が必

                                                                      【衝撃】AWSのRDSがデータを失わないBlue/Greenデプロイに対応しました #reinvent | DevelopersIO
                                                                    • PostgreSQL設計ガイドラインのご紹介 | フューチャー技術ブログ

                                                                      はじめにフューチャー社内の有志メンバーでPostgreSQL DB設計ガイドラインを作成しました。 PostgreSQL設計ガイドライン | Future Enterprise Arch Guidelines形になってから数ヶ月寝かせており、ある程度社内の指摘を取り込むことができたのでこのタイミングで告知します よくあるDB設計規約との差別化ポイント単にDB設計ガイドラインというと何を今更?感もあるので、命名規則や型桁など一般的な内容に加え、以下の点でよくあるDB設計ガイドラインから一歩踏み込んだコンテンツとなるよう心がけました。 論理設計への踏み込み単なるテーブル定義やデータ型選択にとどまらず、より高度な論理設計の原則に焦点を当てています。 マスタ/トラン/ワークデータベース設計において、データの種類に応じてテーブルを明確に分離することは設計効率と保守性を高める上で重要ですが、意外とその

                                                                        PostgreSQL設計ガイドラインのご紹介 | フューチャー技術ブログ
                                                                      • 型キャストの場所のせいで、秒で終わっていたクエリに1時間超かかるようになってしまった話 - SmartHR Tech Blog

                                                                        SmartHRで届出書類という機能を担当しているプロダクトエンジニアのsato-sと申します。 今日は、以前私が調査にとても苦労したパフォーマンス上の問題の話を紹介したいと思います。 TL;DR PostgreSQLのアップグレードを実施した アップグレード後、今までは問題のなかった特定のクエリの実行に1時間超かかり、DBのCPU使用率がピッタリ100%に張り付くようになった 色々調査した結果、PostgreSQL上の型キャストの場所のせいで、良くないクエリプランが選択されることが原因だった 型キャストの場所には気をつけよう PostgreSQLのアップグレードと挫折 SmartHRでは基本的にWebアプリケーションのデータベースとしてGoogle CloudのCloudSQLによって提供されるPostgreSQLを利用しています。 私の担当している届出書類機能では、利用中のPostgre

                                                                          型キャストの場所のせいで、秒で終わっていたクエリに1時間超かかるようになってしまった話 - SmartHR Tech Blog
                                                                        • 転職した - tmtms のメモ

                                                                          これは「Rubyist近況[1] Advent Calendar 2021」の6日目の記事です。 adventar.org 自称 Rubyist なので近況を書きます。 2021年10月末で30年ほど勤めた富士通グループを退職しました。 11月からは SmartHR という会社で働いてます。 3年ほど Ruby は仕事ではあんまり使ってなかったのですが、また Ruby を仕事で使うようになりました。 会社から配布された PC は Core i7 メモリ32GB の MacBook Pro なんでかなり人権がある感じなんですが、人生初 Mac で1ヶ月位経ってもまだ慣れなくて、VM で Ubuntu Desktop 入れようか迷ってます。 近況は以上です。以下は富士通グループの入社〜退職までのメモ。長いので読まなくていいです。 1991〜 設立7年目の今はなき「富士通長野システムエンジニアリ

                                                                            転職した - tmtms のメモ
                                                                          • 読み取り専用 DB を Aurora から SQLite に移行してコストを 1/8 に削減した話 - エムスリーテックブログ

                                                                            こんにちは。クラウド型電子カルテであるエムスリーデジカルのソフトウェアエンジニア兼 Team SRE をしている井上 渉(@wtr_in)です。キャベツ相場が落ち着いてきて一安心しています。 今回は、デジカルを構成するサービスの DB(基本的に読み取りのみ)を Aurora MySQL から Fargate 上の SQLite に移行し、性能も向上しつつ当該サービス全体のインフラコストを約 1/8 まで大幅に削減できた話をご紹介します。 移行前・移行後の構成とその効果 移行前 (Aurora MySQL) 移行後 (SQLite) 移行で得られた効果 移行を検討した背景 なぜ SQLite を選んだか SQLite のデータをどこに置くか インメモリ SQLite へのデータロード まとめ We are hiring! 移行前・移行後の構成とその効果 今回 SQLite を採用したサービス

                                                                              読み取り専用 DB を Aurora から SQLite に移行してコストを 1/8 に削減した話 - エムスリーテックブログ
                                                                            • メンテのいらないソフトウェア - 誰かの役に立てばいいブログ

                                                                              ソフトウェアエンジニアとして働き始めて 20 年以上になります。 元々ソフトウェアでいろいろ作りたくて就いた職業なので、結構な数のプロダクトを開発してきました。 私がメインで開発したもので OSS として出ているものでは、 yrmcds: memcached クローンで、レプリケーション機能などを持つ usocksd: SOCKS4/5 サーバー & ライブラリ transocks: アプリのネットワーク通信を透過的に SOCKS サーバーにプロキシする透過プロキシ coil v2: Kubernetes の CNI ネットワークドライバ moco: MySQL を自動運用する Kubernetes オペレーター accurate: Kubernetes 上で namespace ベースのソフトマルチテナンシーを実現するためのソフトウェア などがあります。これらのソフトウェアの多くは、現役

                                                                                メンテのいらないソフトウェア - 誰かの役に立てばいいブログ
                                                                              • 業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 前編

                                                                                はじめに こんにちは。 GMOアドマーケティングのKONCEです。 新卒で入社し、数年経ちました。日々の業務で学ぶことは多いですが、今年度は技術の深堀りをテーマにやっていきたいと思っています。 今回は入社してDBやSQLに関しては業務内で学ぶことが多く、特別訓練をしていたわけではなかったのですが、「SQLアンチパターン」を用いて学びながら、改めて自分の現状を見つめ直していけたらと思います。 今回は学習を行う側面と自分自身のレベルについて見直していきたいので 知っていた → ○ 部分的に知っていた → △ 知らなかった → × を付けてみようと思います。 目次 SQLアンチパターンについて Ⅰ部 データベース論理設計のアンチパターン 2-1. [○]1章 ジェイウォーク(信号無視) 2-2. [×]2章 ナイーブツリー(素朴な木) 2-3. [○]3章 IDリクワイアド(とりあえずID) 2

                                                                                  業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 前編
                                                                                • 定期的に知識をリフレッシュする - Magnolia Tech

                                                                                  IT系に身を置いていると、つい新しい知識ばかりを追いかけがちになるけど、CS的な基礎知識や、Linuxのコマンドとかの(もちろんソラでコマンド10個のオプションを言える必要は、無い)も当然大事なわけです。というか、土台となる知識が無いと、新しい知識がちゃんと身につきません。 だけど、普段使わない、手を動かさない分野のスキルはどんどん忘れていきます。歳をとると加速度的に忘れていきます。 そしてヤバいのは、分かっていることと、分かっていないこと、できること、できないことの区別がつかなくなることです。 人は分かる範囲でしか物事を理解しないので、「分かっていないことを知る」という行為を行なって「分かる範囲」を広げる、または最低でも維持する営みを続けていかないとどんどん判断する時に必要な材料が狭まっていきます。 Java 1.5の知識で、Java17時代の判断はできないですよね、10倍以上違うんだか

                                                                                    定期的に知識をリフレッシュする - Magnolia Tech

                                                                                  新着記事