並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 1388件

新着順 人気順

MySQLの検索結果1 - 40 件 / 1388件

  • MySQL 8.4 LTS登場!!

    記事を書くのが遅くなってしまったが、先日MySQL 8.4シリーズが登場したので紹介をしておこうと思う。新機能の解説については機会を改めて書くとして、今回は主にアップグレードにまつわる重要なポイントを書き記しておく。 LTS = Long Term Support 以前の記事でも紹介した通り、MySQL 8.4はLTS = Long Term Supportのバージョンとなっている。長期間サポートするために互換性を最大限保証するバージョンである。前のメジャーバージョンであるMySQL 8.0シリーズのように、シリーズの途中で互換性が破壊されるような変更が入ることは基本的に無い。「バグ修正のためにどうしても仕様を変えなければならない」というような事態が生じる可能性はゼロではない。なので絶対に互換性が保たれるとは言い切れないところであるが、基本的には仕様変更はない方向で今後リリースされていくこ

      MySQL 8.4 LTS登場!!
    • Athena で S3 と MySQL を JOIN する | DevelopersIO

      CDK の中で DB を初期化する点についても後ほど触れます。 S3 にサンプルデータをアップロードする 続いて、以下のコマンドで S3 にサンプルのデータを入れます。 bucket_name=$(aws cloudformation describe-stacks --stack-name BlogAthenaJoinS3AndMysqlStack --output text --query 'Stacks[0].Outputs[?OutputKey==`BucketName`].OutputValue') aws s3 cp ./s3_test_data/data "s3://${bucket_name}/data" --recursive これで CloudFormation で作成した S3 バケット名を取得し、そのバケットに以下の CSV ファイルをアップロードしました。 ※4都

        Athena で S3 と MySQL を JOIN する | DevelopersIO
      • Amazon RDS ブルー/グリーンデプロイを利用してMySQLのアップグレードをした話 - Pepabo Tech Portal

        こんにちは。技術部プラットフォームグループのharukinです。 この記事では、私たちが提供するネットショップ作成・運用のためのECプラットフォーム「カラーミーショップ」のデータベースを、Amazon RDSのブルー/グリーンデプロイを利用し、MySQLのバージョン5.7.38から8.0.35へアップグレードした経験についてご紹介します。カラーミーショップにおいてはこれが初の試みでした。Amazon RDS固有のファーストタッチレイテンシーの解除方法や、ダウンタイム時間の計測についてもお伝えします。 Amazon RDSのブルー/グリーンデプロイを活用するメリットは、本番環境に準ずるステージング環境を構築し事前検証が可能であることです。ステージング環境は約1分で本番環境に昇格させることができ、昇格時に許容ダウンタイムを超えたり、レプリケーションやインスタンスの問題が生じた場合は、自動的にプ

          Amazon RDS ブルー/グリーンデプロイを利用してMySQLのアップグレードをした話 - Pepabo Tech Portal
        • Aurora MySQLのメモリ不足の原因を特定する

          シンプルフォーム株式会社でインフラエンジニアをしている守屋です。 本記事では Aurora MySQL の OOM(メモリ不足)エラーについて、原因となるクエリを特定するために役立つ Tips を弊社での実例を交えてご紹介します。 発端 突如 Slack に鳴り響く不吉な通知。 「パターン青!障害です!!」 どうやら本番環境の Aurora クラスターがフェイルオーバーしてアプリケーションが DB コネクションエラーを引き起こした模様です。幸いインスタンスは冗長化していて Aurora のフェイルオーバーは高速であるため、ユーザー目線では瞬断が発生した程度の比較的影響が小さめな障害に留まりました。しかしインフラエンジニアとしては捨ておけない状況です!早速原因の調査を始めました。 フェイルオーバーの原因 結論から言うとメモリ使用量がスパイクして OOM エラーが発生したことが原因でした。根拠

            Aurora MySQLのメモリ不足の原因を特定する
          • クエリのパフォーマンスチューニングの第一歩。実行計画や統計情報について入門する

            SQL実行の流れ まずはSQLがどのような流れで実行されるのかを見ていきます。 SQL実行の流れは大まかに捉えると以下のようになります。 パーサ パーサでは、ユーザーから送信されたクエリを受け取り、その文法的な正確さを検証します。SQLクエリが正しくフォーマットされているか、必要な構文要素が全て含まれているかをチェックし、例えばFROM句で指定されたテーブルが存在するかどうかも確認します。 文法的なエラーがある場合、例えばカンマの欠落や存在しないテーブルの参照など、クエリはエラーとして返されます。 エラーがない場合は、クエリは「抽象構文木」というデータ構造に変換されます。これにより、データベースはクエリをより効率的に解析し、次の処理ステップに進めることができます。 オプティマイザ SQLクエリがパーサを通過した後、次にクエリの最適化を行うのが「オプティマイザ」です。オプティマイザの主な役割

              クエリのパフォーマンスチューニングの第一歩。実行計画や統計情報について入門する
            • サブクエリの書き方を2万文字弱かけてすべて解説する

              これはなに ども、レバテック開発部のもりたです。 今回はSQLのサブクエリについてまとめます。仕事でクエリを書く際、サブクエリは頻出の構文だと思うんですが、同時にサブクエリの書き方を完全に理解しているよという人は案外少ないのではないでしょうか?[1] 実際、MySQLの公式ドキュメントを見ると12ページくらいを割かれており、意外と奥深いのがサブクエリです。使いこなせると便利ですし、何よりちょっとSQLのコツみたいなのがわかって面白いよ、ということで記事にしてみました。 前提 この記事は以下の前提を含んでいます。 環境 MySQL8.0系 読者の知識 なんとなくサブクエリが書ける けど相関サブクエリとかになると「あーっ」つってGoogle meetを閉じてしまうくらいのレベル感 記事のボリューム 18,000文字 おれの卒論が20,000文字だった マサカリ 間違ってたら投げてくれ〜〜 それ

                サブクエリの書き方を2万文字弱かけてすべて解説する
              • note の Aurora MySQL を v2 から v3 へアップグレードしました|tic40

                note ではメインデータベースとして Aurora MySQL を採用し、日々発生する膨大なトラフィックを処理しています。Aurora MySQL v2 (MySQL 5.7 互換) の標準サポートは2024/10/31 に終了するため、これを機に v3 (MySQL 8.0 互換) へのアップグレードを行いました。 アップグレードは無事に完了しましたが、いくつかの問題にも直面しました。これらを共有することで、これからアップグレードを検討している方へ参考になればと思います。 事前に検討した課題アップグレード後に致命的な問題が起きたらどうするかv3 へのアップグレード後に v2 へ切り戻すことは容易ではなく、スナップショットなどからの復元が必要になります。データをロールバックすることになるため、ユーザ影響が極めて大きく避けたい事態です。 そのため、基本的に切り戻しはできないという前提でアッ

                  note の Aurora MySQL を v2 から v3 へアップグレードしました|tic40
                • 大規模サービスのインフラを全面的にリプレイスした話 - Qiita

                  はじめに こんにちは。雑食系エンジニアの勝又です。 今回は、私が2年ほど参画させていただいた大規模サービスのインフラやDevOps周りを全面的にリプレイスしたお話について簡単にご紹介させていただきます。(内容に関しては事前に参画先企業様に確認していただいております) サービス概要 詳細な内容は伏せますが、メインとなるテーブルのレコード数が数十億件、スパイク時には数万〜数十万のユーザーが一斉にアクセスする大規模サービスです。 技術的負債 長く運用されてきたサービスのあるあるですが、新機能の追加が最優先されてきたことにより、こちらのサービスにも下記のような技術的負債が大量に積み上がっていました。 RubyやRailsやMySQLのバージョンがかなり古い インフラの構成がコードではなくドキュメントで管理されている アプリケーションの構成管理がおこなわれていない CI/CDパイプラインが構築されて

                    大規模サービスのインフラを全面的にリプレイスした話 - Qiita
                  • MySQL の SQL クエリチューニングの要所を掴む勉強会

                    データベース 技術顧問 @mita2 FYI: MySQL の SQL クエリチューニングの要所を掴む勉強会を開催しました! - ANDPAD Tech Blog

                      MySQL の SQL クエリチューニングの要所を掴む勉強会
                    • MySQLのSQLクエリチューニングの要所を掴む勉強会を開催しました! - ANDPAD Tech Blog

                      こんにちは!DBREの福間(fkm_y)です。先月、弊社でデータベースの技術顧問をして頂いてる三谷(mita2)さんに開発本部向けの「MySQL SQLチューニング」勉強会を実施していただきました。 今回はMySQLの得意不得意なことの説明やSQLチューニングの流れ、具体的な事例を元にした対応例、また最近話題のHTAPな製品も紹介していただきとても参考になったのでポイントをおさえてレポートをお伝えします! 開催背景 本編 MySQL の得意なこと、苦手なこと データベースのチューニング手段と特徴 SQLチューニングの流れ インデックス SQLチューニング例 インデックスフルスキャンとカバーリングインデックス ソート まとめ 当日の資料 さいごに 過去開催されたデータベース勉強会レポート 開催背景 弊社では三谷さんによるデータベース勉強会を定期的に開催しています。数年前にも同じテーマで勉強会

                        MySQLのSQLクエリチューニングの要所を掴む勉強会を開催しました! - ANDPAD Tech Blog
                      • Why SELECT COUNT(*) FROM TABLE Is Sometimes Very Slow in MySQL or MariaDB

                        If you have enough experience with MySQL, it is very possible that you stumbled upon an unusually slow SELECT COUNT(*) FROM TABLE; query execution, at least occasionally. Recently, I had a chance to investigate some of these cases closer, and it stunned me what huge differences there can be depending on the circumstance given the very same table. As the problem turned out to be much more complex t

                          Why SELECT COUNT(*) FROM TABLE Is Sometimes Very Slow in MySQL or MariaDB
                        • 実績紹介(日本ケンタッキー・フライド・チキン様 オフィシャルアプリ) | ゆめみ

                          日本ケンタッキー・フライド・チキン株式会社|可用性の高いシステム設計、高い分散処理性能を持つシステム開発 日本ケンタッキー・フライド・チキン株式会社「ケンタッキーフライドチキン 公式アプリ」のリニューアルを担当し、UX/UI設計~アプリ開発、コンテンツ運用をご支援させていただいております。 <プロジェクト詳細> One to One・パーソナライズドマーケティングという構想を実現するためのCRM強化を目的とした開発を実施しました。 本開発では、システム全体には「マイクロサービスアーキテクチャ」を採用し、各システムが疎結合となることで、今後も進化発展していくデジタルマーケティング基盤として、可用性の高いシステム設計となっています。 プラットフォームにおいては、全国の店舗から集約した膨大な購入データに対し、数十分でチキンマイル(※後述)を付与することが可能な高い分散処理性能を持つマイルプラット

                            実績紹介(日本ケンタッキー・フライド・チキン様 オフィシャルアプリ) | ゆめみ
                          • 【Developers Summit 2024フォローアップ】『グランブルーファンタジー』100万行を超える大規模なシステム再構築~10周年のその先へ~

                              【Developers Summit 2024フォローアップ】『グランブルーファンタジー』100万行を超える大規模なシステム再構築~10周年のその先へ~
                            • スロークエリを改善したらECSの負荷が爆下がりした話(TypeORM)

                              TL;DR TypeORMで発生していたスロークエリを改善 スロークエリを改善したらECSの負荷も減少 はじめに スロークエリを改善したら、ECSコンテナ側の負荷も下がってなんでだろ?と思ったので記事にしようと思います。 環境 TypeORM v0.3.20 Node.js v18.x バックエンドインフラ ECS on Fargate => Amazon Aurora MySQL 負荷改善の前と後 まずはどのくらい改善したのかを示します。 この時ECSコンテナ8台動いてました。(4vCPU 8GBMem) 改善前 改善後 改善前と改善後は一日前の同じ時間帯のものです。 ちゃんと動いてるのか不安になるくらい下がってました笑 どのような対応をしたのか スロークエリの出ていたクエリでMySQLの実行計画を確認しました。 TypeALL,index, Using Filesort等はなかったので

                                スロークエリを改善したらECSの負荷が爆下がりした話(TypeORM)
                              • MySQL 101 for Developers

                                背景などは https://wrsn0.hatenablog.com/entry/2024/02/22/092703 へ

                                  MySQL 101 for Developers
                                • プログラミング言語をすぐに試せる「プレイグラウンド」まとめ。2024年版

                                  新しいプログラミング言語やライブラリ、フレームワークを学ぶには、実際にそれらを試して挙動などを見てみることが大事ですが、実行環境を用意するのは手間がかかります。 そこで役立つのが、いわゆる「プレイグラウンド」と呼ばれる、Webブラウザでプログラミング言語やライブラリ、フレームワークをすぐに試すことができるサービスです。 主要なプログラミング言語の公式サイトには、実際にその言語をすぐに試せるプレイグラウンドが用意されていることも多く、また公式サイト以外にもネット上にはさまざまなプレイグラウンドがあります。 プレイグラウンドを使えば、気軽にいろんなプログラミング言語やライブラリ、フレームワークを試せます。 この記事ではそうしたプレイグラウンドをまとめてみました。ここで紹介したプレイグラウンドの他にも、あなたのお気に入りのプレイグラウンドがあればX/Twitterやブックマークのコメント、メール

                                    プログラミング言語をすぐに試せる「プレイグラウンド」まとめ。2024年版
                                  • Cloudflare、世界中からのデータベースアクセスを高速化する「Hyperdrive」正式サービスに。CDNを用いてDBのコネクションプーリングやキャッシュを提供

                                    Cloudflare、世界中からのデータベースアクセスを高速化する「Hyperdrive」正式サービスに。CDNを用いてDBのコネクションプーリングやキャッシュを提供 Cloudflareは、グローバルなCDNレイヤでデータベースのコネクションプーリングとクエリのキャッシュを提供することによりデータベースへのアクセスを高速化する新サービス「Hyperdrive」の正式サービス化を発表しました。 We kick off the week with announcements that help developers build stateful applications on top of Cloudflare, including making D1, our SQL database and Hyperdrive, our database accelerating service, g

                                      Cloudflare、世界中からのデータベースアクセスを高速化する「Hyperdrive」正式サービスに。CDNを用いてDBのコネクションプーリングやキャッシュを提供
                                    • GitHub.com を MySQL 8.0にアップグレード

                                      Authors Jiaqi Liu Daniel Rogart Xin Wu GitHubは、15年以上前に単一のMySQLデータベースを持つRuby on Railsアプリケーションとしてスタートしました。それ以来、GitHubは高可用性を構築する、テスト自動化を実装する、データのパーティショニングを行うなど、プラットフォームのスケーリングと可用性のニーズを満たすために、MySQLアーキテクチャを進化させてきました。今日、MySQLはGitHubのインフラストラクチャの中核を担い、選択可能なリレーショナルデータベースの一部です。 このブログは、1200台以上のMySQLホストを8.0にアップグレードした物語です。私たちのサービスレベル目標(SLO)に影響を与えることなくフリートをアップグレードすることは小手先の技で済むようなものではありませんでした。計画、テスト、そしてアップグレード自体

                                        GitHub.com を MySQL 8.0にアップグレード
                                      • PostgreSQL LISTEN/NOTIFY, Goを利用したリアルタイム配信

                                        はじめに 本記事では、PostgreSQLのLISTEN/NOTIFY機能とGoを組み合わせた、メッセージをリアルタイム配信するための仕組み・実装を紹介します。 私たちが開発しているMiROHA eConsentでは本記事で紹介する仕組みを利用して、ユーザが見ている文書のページをリアルタイムに知らせる機能をリリースしました。 MiROHA eConsentは、治験業務支援サービス MiROHAのシステムの一部で 、治験の同意取得プロセスをオンラインのみで完結させることができるプロダクトです。医師とCRC[1]・被験者が同じルームに入室し、ビデオ通話を繋ぎながら治験に関する説明から同意署名、署名した文書のダウンロードまで一気通貫で行うことができます。 MiROHAシステムの全体図。医師/CRCと被験者の間で同意取得ができる機能を提供しているのがMiROHA eConsentになります。 プロ

                                          PostgreSQL LISTEN/NOTIFY, Goを利用したリアルタイム配信
                                        • Aurora MySQL におけるロック競合(ブロッキング)の原因を事後調査できる仕組みを作った話

                                          こんにちは。 DBRE チーム所属の @p2sk です。 DBRE(Database Reliability Engineering)チームでは、横断組織としてデータベースに関する課題解決や、組織のアジリティとガバナンスのバランスを取るためのプラットフォーム開発などを行なっております。DBRE は比較的新しい概念で、DBRE という組織がある会社も少なく、あったとしても取り組んでいる内容や考え方が異なるような、発展途上の非常に面白い領域です。 弊社における DBRE チーム発足の背景やチームの役割については「KTC における DBRE の必要性」というテックブログをご覧ください。 本記事では、Aurora MySQL でロック競合(ブロッキング)起因のタイムアウトエラーが発生した際に根本原因を特定することができなかったので、原因を後追いするために必要な情報を定期的に収集する仕組みを構築した

                                          • Blue/Green デプロイを使用した、RDS MySQL/PostgreSQLのアップグレード

                                            TL;DR RDS の メジャーバージョンアップグレード を行なった PostgreSQL 11.6 -> 15.5 MySQL 5.7.44 -> 8.0.36 PostgreSQL は AWS CDK を利用した、自前での手動切り替えをベースにした Blue/Green デプロイによるアップグレードを行なった MySQL は AWS コンソールから AWSが提供している機能である RDS Blue/Green Deployments による MySQL のアップグレードを行なった nginx の ngx_http_proxy_module を活用してサービスのダウンタイムを防止した はじめに 初めまして。株式会社ジーニーの GENIEE CHAT開発チームのマネージャーを担当しています。 今回は、データベースのメジャーアップグレードを行った際の手順やポイントなどを書いていこうと思います

                                              Blue/Green デプロイを使用した、RDS MySQL/PostgreSQLのアップグレード
                                            • The problem with using a UUID primary key in MySQL — PlanetScale

                                              Universally Unique Identifiers, also known as UUIDs, are designed to allow developers to generate unique IDs in a way that guarantees uniqueness without knowledge of other systems. These are especially useful in a distributed architecture, where you have a number of systems and databases responsible for creating records. You might think that using UUIDs as a primary key in a database is a great id

                                                The problem with using a UUID primary key in MySQL — PlanetScale
                                              • MySQL(InnoDB)のSQLパフォーマンスチューニングのエッセンス

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

                                                  MySQL(InnoDB)のSQLパフォーマンスチューニングのエッセンス
                                                • マルチテナントの実現におけるDB設計とRLS / Utilizing RSL in multi-tenancy

                                                  # 実装の参考資料 - https://soudai.hatenablog.com/entry/2022/11/11/110825 # 類似の登壇内容の動画 - https://www.youtube.com/watch?v=PXy6I-AeI-I

                                                    マルチテナントの実現におけるDB設計とRLS / Utilizing RSL in multi-tenancy
                                                  • Amazon Aurora MySQL 3 の MySQL 8.0 互換版が一般提供 | Amazon Web Services

                                                    Amazon Web Services ブログ Amazon Aurora MySQL 3 の MySQL 8.0 互換版が一般提供 Amazon Aurora は、クラウド向けに構築された MySQL および PostgreSQL 互換のリレーショナルデータベースです。Aurora は、従来のエンタープライズデータベースのパフォーマンスと可用性と、オープンソースのデータベースのシンプルさとコスト効率を持ち合わせています。Amazon Aurora MySQL は MySQL 5.7 と互換性に加え、 MySQL 8.0 とも互換性があります。MySQL 8.0 互換の Aurora MySQL 3 が一般提供されています。 Aurora MySQL 3 は、共通テーブル式 (CTE) のサポート、ロールベースの認証、レプリケーションの強化、ウィンドウ関数、インスタント DDL など、いく

                                                      Amazon Aurora MySQL 3 の MySQL 8.0 互換版が一般提供 | Amazon Web Services
                                                    • TiDBにおけるパフォーマンス検証の進め方とつまづきポイント

                                                      TL;DR TiDBにおけるパフォーマンス検証をどうやって行ったか パフォーマンス検証を行ったときにつまづいた問題とその対応策 TiDBの仕様やアーキテクチャなどの話はありません 前提 対象のDBはAmazon Auroraで稼働中 DBエンジンはMySQL TiDBに移行できないかPoCを実施 DB周りにいろんな課題があり、TiDBで解決できないか検証 TiDB Cloudで検証 本番運用を想定してTiDB Dedicatedを利用 先にお伝えしたいこと TiDB導入したいとか言う前に、今使っているRDBで発生しているスロークエリとかIndex設計を見直した方が良いです笑 理由はこの記事を見てもらえるとわかると思いますw パフォーマンス検証の進め方 1. パフォーマンス検証に利用するクエリを洗い出す 観点としては以下の2つ 実行される頻度が高いSQL 実行速度が遅いSQL(スロークエリ)

                                                        TiDBにおけるパフォーマンス検証の進め方とつまづきポイント
                                                      • Log Explorer: monitor security events without third-party storage

                                                        Log Explorer: monitor security events without third-party storage03/08/2024 This post is also available in Français, Español, 简体中文, 繁體中文, 日本語, 한국어 and Deutsch. Today, we are excited to announce beta availability of Log Explorer, which allows you to investigate your HTTP and Security Event logs directly from the Cloudflare Dashboard. Log Explorer is an extension of Security Analytics, giving you th

                                                          Log Explorer: monitor security events without third-party storage
                                                        • 12年目を迎えた『ガールフレンド(仮)』におけるデータベースの負債解消への道のり【CAGC2024】

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

                                                            12年目を迎えた『ガールフレンド(仮)』におけるデータベースの負債解消への道のり【CAGC2024】
                                                          • 大テーブルと小テーブルのJOINのコスト計算の話

                                                            https://mysql-unconference.connpass.com/event/310279/ https://amamanamam.hatenablog.com/entry/2024/02/11/005331

                                                              大テーブルと小テーブルのJOINのコスト計算の話
                                                            • MySQLのREPEATABLE READとREAD COMMITTEDのロック状況をdata_locksから観察する - $shibayu36->blog;

                                                              前回MySQLのREPEATABLE READとREAD COMMITTEDの違いを知るために色々試した - $shibayu36->blog;という記事を書いたところ、yoku0825さんにMySQL 8.0以降だとperformance_schema.data_locksが使えると教えてもらったので試した。 ちなみに、後ろからロックがぶつかるクエリを実行しなくても、MySQL 8.0だとSELECT * FROM performance_schema.data_locksでロックの範囲を確かめることができます。 ギャップつきロックがInnoDBのスタンダードで、X lockがレコードとギャップのロック、X not gapが単なるレコードロックになります— yoku0825 (@yoku0825) February 27, 2024 テーブル定義 CREATE TABLE `posts`

                                                                MySQLのREPEATABLE READとREAD COMMITTEDのロック状況をdata_locksから観察する - $shibayu36->blog;
                                                              • 【30歳/完全未経験/独学】webアプリを作製しました【Golang, Next.js, MySQL, Docker, GitHub Actions CI, AWS Fargate on ECS】 - Qiita

                                                                完成物 ER図 画面遷移図 figma, 原寸画像 AWS構成図 ※備考※ GitHub Actions CIは構築済みです。 GitHub Actions CD, apiのprivate subnet化にも取り組んでいます。 EC2インタンスは通常時停止です。 技術選定理由 プログラミング、IT業界ともに未経験で着手し独学で作りました。 Go 比較対象:JAVA、Ruby、Python、PHP コンパイラ言語であり実行速度が高速である 静的型付けであり、コンパイル前にバグを発見しやすい 静的型付けかつ記述自由度が低いことから、以下2点を利点と考えた 開発を中長期まで続けた際にも、加筆・改修しやすい 他人のコードを読んだ際に学びやすい Javaも多少書いてみたが、簡素にかけるGoの方がしっくりきた SHOWROOM、IRIAM、Twitch、AbemaTVといった動画配信サービスにも採用さ

                                                                  【30歳/完全未経験/独学】webアプリを作製しました【Golang, Next.js, MySQL, Docker, GitHub Actions CI, AWS Fargate on ECS】 - Qiita
                                                                • Dive into InnoDB from redo logs

                                                                  DevOps Topologies 10 years on: what have we learned about silos, collaboration, and flow? - Matthew Skelton, Conflux

                                                                    Dive into InnoDB from redo logs
                                                                  • どのレイヤー(層)でトランザクションを実装すべきか

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

                                                                      どのレイヤー(層)でトランザクションを実装すべきか
                                                                    • MySQLのREPEATABLE READとREAD COMMITTEDの違いを知るために色々試した - $shibayu36->blog;

                                                                      MySQLのトランザクション分離レベルについてふんわりとした理解しかないなと感じた。もう少し理解するために、とくにREPEATABLE READとREAD COMMITTEDの違いを手を動かして色々確認してみた。 以下の記事を参考にした。 [RDBMS][SQL]トランザクション分離レベルについて極力分かりやすく解説 #SQL - Qiita MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.7.2.1 トランザクション分離レベル 大まかな違い 公式ドキュメントを見る限り ノンリピータブルリード、ファントムリードが発生するか 範囲に含まれるギャップへのほかのセッションによる挿入をブロックするか の違いがありそうに見える。 ノンリピータブルリード、ファントムリードが発生するかを試す 以下のテーブルを作る。 CREATE TABLE `posts` ( `title`

                                                                        MySQLのREPEATABLE READとREAD COMMITTEDの違いを知るために色々試した - $shibayu36->blog;
                                                                      • 「開発者向けの MySQL 入門」という勉強会をしました - しなしな記録

                                                                        今、自分が所属している会社では、いわゆるフルサイクルなアプリケーションエンジニアがほとんどで、SRE のような、システムを運用改善することを専門にするメンバーは居ません。一方でそれなりにプロダクトの数は多く、各種ミドルウェアの運用で困っているのを見かけることがあります。 色々な人が似た問題に悩むのはもったいないので、「MySQL を運用したことがある人からすると、こういう考え方をする」という風な目線で勉強会を行いました。せっかくなので社内の情報を抜いたうえで公開します(同じようなことを色々な場所で言っていて、その都度作り直しているから……というのもあります)。 speakerdeck.com ちなみに DB のどこで悩むかはだいぶ業界ドメインに左右されると思っています(それはそう)。ゲーム業界なんかは、激しくスパイクするワークロードな上にミスったときの機会損失が激しいので、シャーディングを

                                                                          「開発者向けの MySQL 入門」という勉強会をしました - しなしな記録
                                                                        • SQLの達人への道: MySQLでの高速・効率的クエリ作成術 - Qiita

                                                                          データベースとテーブルの作成 テスト用のデータベースtestdbを作成し、パフォーマンスチューニングを検証するためのcompanyおよびpersonテーブルを定義します。 CREATE DATABASE testdb; USE testdb; CREATE TABLE company ( company_id INT AUTO_INCREMENT PRIMARY KEY, company_name VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE person ( person_id INT AUTO_INCREMENT PRIMARY KEY, company_id INT, person_name VARCHAR(255) NOT NULL, email VARCH

                                                                            SQLの達人への道: MySQLでの高速・効率的クエリ作成術 - Qiita
                                                                          • 毎日本番DBをダンプして、ローカルと開発環境で利用して生産性を上げてる話

                                                                            シードデータで動作確認して大丈夫だったのに、本番反映してみたら想定してなかった挙動・エラーが出た😱そんな経験はありませんか。 恥ずかしながら私は今までに何回もありました。機能開発だけじゃなくバッチやマイグレーションなんかでも発生しがちなコレ。またはシードデータで動作確認できても、本番データでも通用するか検証ができないままプルリクを作る、なんていうこともあると思います。今回はこちらを無くす試みをしたお話です。 「もう本番DBで開発しちゃえばいいじゃない」の問題点 この課題を解決するには、極論すると本番DBで開発するしかないのですが、そうなると言うまでもなく以下の問題が出てきます。 レビュー通過してないコードが本番に影響を与える トライ&エラーができない 個人情報をはじめとするセンシティブな情報が開発者の端末に漏れる データ量が多すぎてローカルに持ってこれない しかし言い換えると、これらをク

                                                                              毎日本番DBをダンプして、ローカルと開発環境で利用して生産性を上げてる話
                                                                            • 個人開発向け無料 RDB サービスまとめ 2023 年版

                                                                              はじめに 最近、個人開発する上で DB の選択肢が多く、技術選定をする際に割りと頭を悩ます問題だと思う。この記事では、いくつかのサービスをピックアップして、それぞれの概要やコスト感、機能、制約などをまとめてみる。 あくまでも自分が個人開発に際して技術選定の材料とするもの。 今回対象にするサービス一覧 今回は以下の DB サービスをピックアップして紹介する。 料金などについては、更新が入るかもしれないので 2023 年末の情報ということに留意していただければと思う。(それぞれ公式のリンクを添えておくので、そこから詳細を確認してもらえればmm) Neon Planetscale Render.com Supabase Vercel Storage 候補に上がらなかったサービス Cloudflare D1 Heroku また、選んだ基準としては以下の 2 点を優先している。 無料で使用できるプラ

                                                                                個人開発向け無料 RDB サービスまとめ 2023 年版
                                                                              • メルカリの本番環境で流れているクエリを使って、MySQL互換のTiDB Cloudを評価。40TBを越えるDBの大規模トラフィックに耐えられたか? - Qiita Zine

                                                                                sponsored by PingCAP株式会社 | 制作:Publickey 国内最大級のフリマアプリ「メルカリ」のバックエンドデータベースは、50台以上のMySQLサーバがオンプレミスのデータセンターで稼働しており、40TBを越えるデータサイズのデータベースを保持していると、2023年12月に都内で開催されたイベント「db tech showcase 2023 Tokyo」のセッションで、同社のDBRE(Database Reliability Engineer)を務める本田恭氏が明らかにしました。 そしてそのデータベースの規模の大きさゆえにいくつかの課題もあるため、新たなデータベースの候補として、MySQL互換でNewSQLの代表的なデータベースサービスである「TiDB Cloud」をPoC(Proof of Concept:概念検証)として評価。その結果も発表されました。 メルカリ

                                                                                  メルカリの本番環境で流れているクエリを使って、MySQL互換のTiDB Cloudを評価。40TBを越えるDBの大規模トラフィックに耐えられたか? - Qiita Zine
                                                                                • メルカリの本番環境で流れているクエリを使って、MySQL互換のTiDB Cloudを評価。40TBを越えるDBの大規模トラフィックに耐えられたか?[PR]

                                                                                  メルカリの本番環境で流れているクエリを使って、MySQL互換のTiDB Cloudを評価。40TBを越えるDBの大規模トラフィックに耐えられたか?[PR] 国内最大級のフリマアプリ「メルカリ」のバックエンドデータベースは、50台以上のMySQLサーバがオンプレミスのデータセンターで稼働しており、40TBを越えるデータサイズのデータベースを保持していると、2023年12月に都内で開催されたイベント「db tech showcase 2023 Tokyo」のセッションで、同社のDBRE(Database Reliability Engineer)を務める本田恭氏が明らかにしました。 そしてそのデータベースの規模の大きさゆえにいくつかの課題もあるため、新たなデータベースの候補として、MySQL互換でNewSQLの代表的なデータベースサービスである「TiDB Cloud」をPoC(Proof of

                                                                                    メルカリの本番環境で流れているクエリを使って、MySQL互換のTiDB Cloudを評価。40TBを越えるDBの大規模トラフィックに耐えられたか?[PR]