並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 549件

新着順 人気順

mysql-5.7の検索結果1 - 40 件 / 549件

  • データベース設計の際に気をつけていること - 食べチョク開発者ブログ

    皆さんこんにちは、エンジニアの西尾です。 新しい機能・サービスを開発する際、私は特にデータベース設計に気をつかいます。 データベースはシステムの土台です。 土台が不安定だと、その上に積み上げていくアプリケーションコードがいびつなものになり、つらい思いをします。 また、一度動き出してしまったシステムのデータベース設計を変えるのは、容易なことではありません。 データベース設計には”これだ!”という正解はないと思っています。 サービスの特徴、システムの性質、toB向け/toC向け、Readが多い・少ない、Writeが多い・少ない。 その他もろもろの背景により、データベース設計の仕方も変わってきます。 このテーブルは正規化していないから駄目だ、この設計はいわゆるポリモーフィック関連だから使ってはいけない、などということはありません。 アンチパターンと呼ばれるものも時と場合によっては正解になります。

      データベース設計の際に気をつけていること - 食べチョク開発者ブログ
    • 2020年現在のNewSQLについて - Qiita

      Disclaimer 当記事はNewSQL開発ベンダの技術ブログや各種論文、その他ニュースサイト等の内容を個人的にまとめたものです。 そのため、理解不足等に起因する誤解・誤認を含む可能性があります。更なる理解が必要な方はリファレンスに挙げた各種文献を直接参照下さい。技術的な指摘は可能であれば取り込み修正しますが、迅速な対応はお約束できません。 NewSQLの解説は二部構成 当記事は前編でNewSQLの概要編となる。 全体の目次は下記である。 NewSQLとは何か NewSQLのアーキテクチャ NewSQLとこれまでのデータベースの比較 NewSQLのコンポーネント詳解 1章から3章までの内容を当記事で解説する。 4章はさらに詳細な技術的解説となり、後編の「NewSQLのコンポーネント詳解」で記述している。 こちらも合わせて一読いただきたい。 1. NewSQLとは何か NewSQLとは、海

        2020年現在のNewSQLについて - Qiita
      • データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)

        これはなに ども、レバテック開発部のもりたです。最近めっちゃ元気!! 今回は『データベースについて勉強したいあなたに送る技術書17冊(+11冊1講義7link)』として、もりたがここ半年くらいでわーっと集めたデータベース周りの書籍(とか)を紹介していきます。アプリケーションって結局はデータベースみたいなところがあると思うんですが、おれは長いことデータベースをどう学んだら良いのか分かりませんでした。同じような気持ちを抱えているITエンジニアの人もいると思うので、学習ロードマップと合わせて紹介していきます。 なお具体的な対象読者は業務でなんとなくSQL書いてるけど、ウィンドウ関数とか言われると分からんな……くらいの人です。 扱う領域と扱わない領域 扱う領域としてはだいたい以下 再入門本 SQL 内部構造 論理設計 周辺知識 データベース理論 その他高度なもの モデリング、NoSQL、分散データ

          データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)
        • MySQL のレプリケーションから10年間逃げてきた我々が学んだこと8選 - Cybozu Inside Out | サイボウズエンジニアのブログ

          こんにちは。クラウド運用チームで SRE をしている飯塚です。 今回は、MySQL のレプリケーション機能を約10年もの間ずっと使ってこなかった私たちが、レプリケーションを使った高可用性構成に移行するための取り組みの中で学んだことについて紹介します。 背景 巨大なテーブルへの primary key の付与 トランザクションサイズが大きい場合には tmpdir に注意 mysqldump で絵文字が消えていないか要チェック mysqldump が Error 1412: Table definition has changed... で失敗する mysqldump したデータのリストアが Duplicate entry 'xxx-yyy-PRIMARY-n_diff_pfx01' for key 'PRIMARY' で失敗することがある mysqldump したデータのリストア時のディスク

            MySQL のレプリケーションから10年間逃げてきた我々が学んだこと8選 - Cybozu Inside Out | サイボウズエンジニアのブログ
          • 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へアップグレード。サービス無停止のまま成功させる
            • 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 | サイボウズエンジニアのブログ
              • 【衝撃】AWSのRDSがデータを失わないBlue/Greenデプロイに対応しました #reinvent | DevelopersIO

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

                  【衝撃】AWSのRDSがデータを失わないBlue/Greenデプロイに対応しました #reinvent | DevelopersIO
                • MySQL 5.7 から 8.0 にしたらテストが激遅になった - Qiita

                  この記事は、株式会社カオナビ Advent Calendar 2023 の3日目です。 はじめに 株式会社カオナビの高橋(@kunit)です。 今回は MySQL バージョンアップ(5.7 -> 8.0) で起きた問題とそれに対してどのように対処したのかを書いていこうと思います。 何が起きたのか MySQL 5.7 から 8.0 にバージョンアップをするにあたって、CI およびローカル環境でテストができるように MySQL 8.0 のイメージを作成し、それをつかって各機能の担当者にテストを開始してもらっていたのですが、以下のような事が起きました。 接続を MySQL 5.7 から 8.0 に切り替えただけでテストの時間が3倍くらいかかるようになった そこを変更するだけで3倍遅くなるってやばいぞということで報告してくれた担当者と同じテストを自分でも実施してみると再現性があり、それが以下のどの

                    MySQL 5.7 から 8.0 にしたらテストが激遅になった - Qiita
                  • GitHubは200万行規模のRailsアプリケーションであり、毎週RailsとRubyを最新版にアップデートし続けている

                    GitHubは200万行規模のRailsアプリケーションであり、毎週RailsとRubyを最新版にアップデートし続けている 4月10日でサービス開始からちょうど15周年を迎えたGitHubは、当初からRuby on Railsを用いたモノリシックなアプリケーションとして作られてきました。現在では200万行近い規模のコードになっているそうです。 今年1月にはGtHubを利用しているデベロッパーが1億人に到達したことも発表しました。GitHubはまさに世界最大級のRailsアプリケーションだと言っていいでしょう。 そのGitHubは5年前の2018年、Railsのバージョンを3.2から5.2に上げる作業に1年半を費やし。そして二度とこのようなことにならないよう、より頻繁にアップデートを行うべき、などの教訓を得たとしていました。 そして現在、GitHubは毎週月曜日にRailsのアップデート作業

                      GitHubは200万行規模のRailsアプリケーションであり、毎週RailsとRubyを最新版にアップデートし続けている
                    • 2021年サーバーサイドのエンジニアが使ってよかったもの10選 - KAYAC engineers' blog

                      こんにちは! Tech KAYAC Advent Calendar 2021 7日目を担当する荒賀(@ken39arg) です。 カヤックのエンジニアブログには2008年にPHPを使ったガラケー関連の記事を書いたのが最初になります。 それから10年以上たち、ガラケーも弊社でのPHPのプロジェクトもほぼなくなり、メンバーもかなり入れ替わり、私自身も20代だったのがついに40歳になりました。そんな私にとってこのアドベントカレンダーは私は今でもここにいるよというPingのような役割になっているため、年に一度若者に混じってアドベントカレンダーに参加しております。 例年ですと、趣味のマラソンなどに関する実績も書いているのですが、昨年同様、今年も続くコロナ禍により多くの大会が中止となったためこちらに関しては特に特記すべき実績はありません。ただ2020年に走るはずだった東京マラソンは権利は移行を続けてお

                        2021年サーバーサイドのエンジニアが使ってよかったもの10選 - KAYAC engineers' blog
                      • yoku0825さんがMySQLスペシャリストになるまでにやってきた勉強法を、私たちにすべて教えてください! - Findy Engineer Lab

                        「日本国内でもトップレベルのスキルを持ったMySQLエキスパートは誰か?」 そう問われたときに、多くのエンジニアが名前を挙げる人物がいます。LINE株式会社のITサービスセンター データベース室 MySQL1チームでDBA(Database Administrator)として働くyoku0825さん*(@yoku0825)です。 日本人として3人目のMySQL分野のOracle ACEであり、2015年には「default_password_lifetime」の功績でMySQL 5.7 Community Contributor Awardに選出されたyoku0825さん。彼はひたむきに自己研鑽を続けるだけではなく、ブログ「日々の覚書」や技術イベントへの登壇などを通してMySQL関連の情報発信を行ってきました。 今回はそんなyoku0825さんに「これまでどのようなトレーニングをして、DB

                          yoku0825さんがMySQLスペシャリストになるまでにやってきた勉強法を、私たちにすべて教えてください! - Findy Engineer Lab
                        • オンライン DDL を期待して ALTER 文を実行したら障害になりかけた話 - カミナシ エンジニアブログ

                          こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシではマルチプロダクト化に向けて、認証・認可の切り出しを進めています。その対応を進める中で、既存テーブルへのカラム追加が必要になりました。 先日、そのリリースのために本番データベースにマイグレーションの ALTER 文を実行したところ、クエリが詰まって危うく障害になるところでした(幸いすぐにキャンセルして事なきを得ました)。 原因を調べたところ、オンライン DDL は複数の条件が関係することがわかりました。オンライン DDL に対する知識不足と事前検証の甘さゆえのミスでしたが、結果的には良い学びが得られました。 カミナシのバリューのひとつである「全開オープン」の気持ちで、事の顛末やそこから得た学びを公開します。 なお、今回の話は MySQL 5.7 互換の Amazon Aurora MySQL 2 で確

                            オンライン DDL を期待して ALTER 文を実行したら障害になりかけた話 - カミナシ エンジニアブログ
                          • MySQL で使用するメモリサイズの見積もり - 元RX-7乗りの適当な日々

                            最近、MySQLのパラメータの調整をする機会があったのですが、特定のパラメータを変更した際に、メモリの消費量にどう影響するのか、というのを調査する際に、インターネッツを彷徨ったところ、サイトによって書いてあることにバラつきがあったので、自分でもまとめてみることにした。 結論から書くと、参考にしたのは以下のオライリーの書籍「MySQLトラブルシューティング」で、記述が一番わかりやすく書かれていた。 このエントリは、この書籍の 「3.9.3 オプションの安全値を計算する」 にて記載がある内容をまとめたものになる。 MySQLトラブルシューティング 作者:Sveta SmirnovaオライリージャパンAmazon 著者について Sveta Smirnova(スヴェータ・スミルノヴァ): Oracle社MySQLサポートグループ・バグ検証グループの主席テクニカルサポートエンジニアとして毎日MySQ

                              MySQL で使用するメモリサイズの見積もり - 元RX-7乗りの適当な日々
                            • 会社の支給PCがMacBook Pro M1なので、新しく開発環境を構築した話 - 食べチョク開発者ブログ

                              こんにちは。 今年の年始からジョインした遠藤です。 さて、入社したところ会社支給のMacBook ProがM1チップのものでした。 はい、現状は開発環境で苦労するとか色々噂を聞くやつです。 実際に試したのですが、 現状の開発環境構築スクリプト、手順書が一切使えない VitualBox, Vagrantは利用不可 Dockerは利用可能ではあるが、一部イメージが対応されてない 古いパッケージは動かす手段がない などなど、通常ではぶつからない問題にぶつかります。 食べチョクでは、 Ruby Node.js MySQL Redis ElasticSearch Kibana を利用しています。 この辺りをメインに話つつ、Intel版とこんな風に違うのかっていう辺りの雰囲気を感じ取っていただければと思います。 どこに開発環境を構築するか まず、どこで開発環境を構築するかを考えてみたいと思います。 ロ

                                会社の支給PCがMacBook Pro M1なので、新しく開発環境を構築した話 - 食べチョク開発者ブログ
                              • Docker でロードバランサ・アプリケーションサーバ・DBサーバの環境構築 - A Memorandum

                                はじめに Nginx でロードバランサを構成する Webサーバ1号機の作成 Webサーバ2号機の作成 ロードバランサの作成 ロードバランサとWebサーバの起動 Web アプリケーションの準備 Docker でアプリケーションをビルドする DBサーバの準備 ロードバランサとアプリケーションサーバの起動 まとめ はじめに 前回は Docker のインストールからイメージビルド・コンテナ起動・Compose までの流れをみてきました。 blog1.mammb.com 今回は以下のような、一般的な Web アプリケーションの開発環境を構築していきます。 前回の記事とあわせて、Docker の活用方法を理解いただければと思います。 Nginx でロードバランサを構成する 最初に、単純な Web サーバを Nginx でロードバランシングする環境を作成して動作を見てみます。 このような構成となります。

                                  Docker でロードバランサ・アプリケーションサーバ・DBサーバの環境構築 - A Memorandum
                                • LambdaからRDS/RDBを利用する際に意識したいポイント5選 | DevelopersIO

                                  こちらの記事はRDS ProxyがGAされる前に執筆した記事です。現在はLambdaからRDSを利用する場合、間にRDS Proxyを挟むという選択肢が増えているので、まずはRDS Proxyを使う/使わないの検討をお願いします。以後で紹介しているトピックの一部はRDS Proxy利用時は考え方が変わってきます。 CX事業本部@大阪の岩田です。私が現在関わっているプロジェクトではLambda × RDSというアーキテクチャを採用して開発を進めています。開発を進める中でLambda × RDS(RDB)という構成についてある程度ノウハウが貯まってきたので、注意したいポイントやオススメの設定をTIPS的に紹介していきます。 環境 以後の説明では以下の環境の一部もしくは組み合わせを利用しています。具体的なコードやSQLの例はプログラミング言語やDBエンジンに依存しますが、根底の考え方はどの言語、

                                    LambdaからRDS/RDBを利用する際に意識したいポイント5選 | DevelopersIO
                                  • 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
                                    • はてなブログの 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
                                      • Aurora MySQL でレコードが存在するのに SELECT すると Empty set が返ってくる事象を調査した話

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

                                        • 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エキスパートyoku0825が目指す、DBAとしての未来像

                                            LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog LINEで働くエンジニアに色々と話を聞いていく「LINE Engineer Insights」。LINEの技術組織で働く人々に、何を重視して技術者としてのキャリアを歩んでいるのか、今LINEで何に取り組んでいるのか、今後実現していきたいことなどを聞いていきます。 今回登場するのは、MySQLエキスパートとして広く名を知られる田中翼(@yoku0825) 。日本人として3人目のMySQL分野のOracle ACEであり、2015年には「default_password_lifetime」の功績でMySQL 5.7 Community Contributor Awardに選出された田中は、2021年6月よりLINEのITSC DB

                                              MySQLエキスパートyoku0825が目指す、DBAとしての未来像
                                            • MySQLの機能でスロークエリ関連の解析を行う方法の紹介 - エキサイト TechBlog.

                                              はじめに XTechグループ Advent Calendar 2021の16日目は、iXIT株式会社 エンジニアの蝦名がお送りします。 最近ハマっているものは音楽系Vtuberです。VIRTUAFREAK良かった…。 qiita.com 本題 ツールなどを導入しなくてもSlowQueryを解析できる機能がMySQLには存在するので、今回はその一部を紹介します。 ちなみに私が開発しているサービスのMySQLバージョンは5.6です。 1. mysqldumpslow 一言で言うとスロークエリーログファイルを解析して内容のサマリーを出力してくれる機能です。 前提としてスロークエリーログを出力している必要があります。 使い方 コマンド ※合計実行時間が長い順に10件のSQLを出力する mysqldumpslow -s at -t 10 /opt/fio1/slog/sp-prd-db1-slow.

                                                MySQLの機能でスロークエリ関連の解析を行う方法の紹介 - エキサイト TechBlog.
                                              • Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい - GMOインターネットグループ グループ研究開発本部

                                                2023.01.11 Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい Amazon Aurora MySQLでテーブルの再構築を伴う操作を行うと,Readerインスタンスで瞬間的に対象のテーブルが見えなくなる場合があるので,オペレーションの実行タイミングに気をけましょう,というお話です。再構築を伴う操作には,一部のALTER TABLEやOPTIMIZE TABLEが含まれます。 こんにちは,S.T.です。Amazon Aurora MySQLで少し気になる現象を見かけたので紹介します。この現象を知っていれば回避できるので,クリティカルな影響があるということではないですが,将来直ってくれると嬉しいですね。 1.Amazon Aurora MySQLとは Amazon Aurora MySQLはAWSで利用できるマネージドのRDBです。コ

                                                  Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい - GMOインターネットグループ グループ研究開発本部
                                                • ISUCON10 予選問題の解説と講評 : ISUCON公式Blog

                                                  ISUCON 10 予選問題作問担当の @yosuke_furukawa です。ISUCON 10 の予選お疲れさまでした。このブログでは、 ISUCON 10 の予選問題の解説と講評を行います。 問題については下記のURLにて公開されています。 http://github.com/isucon/isucon10-qualify 動作確認をしたい場合は README.md を確認の上、検証してみてください。 課題アプリケーション ISUUMO について ISUCON10 の予選の問題は、 ISUUMO と呼ばれるイスに合う物件を検索するサイトでした。せっかくリクルートが作問担当になったので、リクルートならではのものにしたいのと、ずっと社内ISUCONでポリシーとして持っていた「実際に起きているパフォーマンス問題に近い課題を設定したい」という思いから作りました。 今回の問題は位置情報を使った

                                                    ISUCON10 予選問題の解説と講評 : ISUCON公式Blog
                                                  • MySQL で複合インデックスを作成する際には必ず Explain の key_len を確認すべきという話

                                                    「Rails Developers Meetup 2018 で「MySQL/InnoDB の裏側」を発表しました」でちゃんと触れられてないので今更ながら key_len について補足します。発表で触れた内容については言及しないので、storage engine や B+ tree といった用語がよくわからない方は発表内容を参照してください。 なお、MySQL のバージョンは 5.7.38 です。 mysql> SELECT @@version; +-----------+ | @@version | +-----------+ | 5.7.38 | +-----------+ 1 row in set (0.00 sec) 事前準備 sample-data-railsdm-2018 の orders テーブルを少しいじって、キャンセル時刻(canceled_at)、配送予定時刻(deliv

                                                      MySQL で複合インデックスを作成する際には必ず Explain の key_len を確認すべきという話
                                                    • MySQL 8.0アップグレード後に性能劣化したクエリ: セミジョイン編 - inSmartBank

                                                      データベースアップグレード後の性能劣化、イヤですよね。 去る2023年某日、弊社ではAmazon Aurora MySQL 互換エディション 2 (MySQL 5.7 互換) から Aurora MySQL 互換エディション 3 (MySQL 8.0 互換) にアップグレードしました。当時の背景やアップグレードに関する知見は以下の記事をぜひ読んでみてください。 blog.smartbank.co.jp ソフトウェアバージョンアップをするとき、旧バージョンが抱えていた問題の解決などの恩恵を我々は期待します。しかし時には予期せぬデグレーションに遭遇することもあります。我々のMySQL 8.0へのアップグレード前後においてもいくつかの問題に遭遇しました。 本記事ではそんな問題の一つ、MySQL 8.0のオプティマイザが選択したセミジョイン最適化が性能劣化を引き起こした事例と解決方法について紹介し

                                                        MySQL 8.0アップグレード後に性能劣化したクエリ: セミジョイン編 - inSmartBank
                                                      • MySQL 5.7 to 8 check list

                                                        mysql57to8.md 確認すること メンテナンス時間をどれくらい取れるかで戦略が決まる。 基本的にはメンテナンス時間を十分に取れたほうが良い。 またリスクをどれだけ許容できるかもビジネスによるので要確認しておくべき。 基本的には一度切り替えてしまうとロールバックすることは簡単ではない。 覚悟を決めて突き進む必要がある 最初に諦めること MyISAMを使いたい 8でも動くけど諦めろ、もう未来はない InnoDBのほうがDisk サイズを消費する、countが遅い、などの課題はあるので簡単ではないが… InnoDB memcached Pluginとか使ってるんだよね 諦めろ、未来はない これを機にアーキテクチャを見直しましょう PKが無いtableがあるんだよね すべてのtableにまずPKを付けるんだ このあと、DMSを使ったりとかなにをするにしても死ぬ そもそもデータモデルとして死

                                                          MySQL 5.7 to 8 check list
                                                        • RDS Blue/Green Deployments を使ってシュッと utf8mb4 にマイグレーションした話 - カミナシ エンジニアブログ

                                                          こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシでは RDB に Amazon Aurora MySQL 2(MySQL 5.7 互換)を使っています(以下 Aurora MySQL と略します)。 ある日、社内の Slack で「𠮷」などの文字列が登録できないのではないかという話が出ました。これを聞いて「あー」と思った方も多いでしょう。 MySQL で有名な UTF-8 の 4 バイト文字問題で、歴史的な理由から MySQL 5.7 以前では utf8 の文字セットは utf8mb4 ではなく utf8mb3 を指しています。 dev.mysql.com カミナシのアプリケーションは 4 バイトの文字列が入力された場合はシステムエラーを返す実装になっていますが、エラーの内容をユーザーにわかりやすく伝えることは難しいためユーザー体験としても良くない

                                                            RDS Blue/Green Deployments を使ってシュッと utf8mb4 にマイグレーションした話 - カミナシ エンジニアブログ
                                                          • Aurora MySQLをMySQL8.0へ移行した話 - inSmartBank

                                                            こんにちは!SREを担当してます上平と申します。 このエントリーではAurora MySQL5.7互換からMySQL8.0互換への移行を実施した際の流れや学びに関して紹介したいと思います! B/43 では Aurora MySQL5.7系をサービスリリースから使っており、Aurora MySQL バージョン2のサポート終了日(2024/10/31)が近づいているのもあったので、移行することにしました。 Amazon Aurora バージョン - Amazon Aurora これからAurora MySQL8.0へ移行を検討されている方の参考になれば幸いです。 想定される読者 Aurora MySQL 5.7系を使っていて、アップグレードを検討している方 実際の Aurora MySQL 8.0 への移行手順を知りたい方 AWS インフラに興味がある方 前提 Aurora MySQL5.7互

                                                              Aurora MySQLをMySQL8.0へ移行した話 - inSmartBank
                                                            • DockerでDevOps環境を整える - Qiita

                                                              DockerでDevOpsな環境を整える ここ数年、炎上してる案件にアサインされてる。。 傾向として、svnでブランチがいっぱい作ってマージでデグレしたり、 Excelでバグ表を管理したり、ガントチャートを手作業で管理したり、 結合テストの段階までプログラムを動かしたテストをしてない、 テストが自動化されていないと惨憺たる状況が見られる。。。 正直、付き合ってられない😭 チンパンジーを相手にしてる気分、 ということで、docker-composeを使って、進捗/バグ管理にRedmine ソース管理と自動テストのためにgitlab,gitlab-runnerの環境を整えてみました。 ソースコードやバグの管理、テストの自動化などに使っていただければ幸いです。 docker-compose.ymlファイル version: "3" volumes: # gitlab関連Volume gitla

                                                                DockerでDevOps環境を整える - Qiita
                                                              • 大規模サービスのインフラを全面的にリプレイスした話 - Qiita

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

                                                                  大規模サービスのインフラを全面的にリプレイスした話 - Qiita
                                                                • Aurora MySQL 5.7とRailsで実現する全文検索機能 - dely Tech Blog

                                                                  こんにちは。 クラシル開発部、バックエンドエンジニアの松嶋です。 delyに入社してから約3年間、私はSREチームに所属していましたが、昨年10月にバックエンドに転向しました。バックエンドに転向してからは、主にクラシルアプリの公式レシピおよびCGMコンテンツの検索機能に関する開発・改善に取り組んでいます。 クラシルは、2016年2月にサービスを開始してから、管理栄養士監修の「誰でも安全に・おいしい料理を作ることができるレシピ動画」を5万件以上提供してきました。 昨年12月には、クラシルのブランドリニューアルを行い、今後はシェフや料理研究家を中心としたクリエイターとともに多様化したユーザーの食の好みや課題解決に応えられるよう、幅広い食のコンテンツを提供するプラットフォームを目指しています。 ブランドリニューアルの詳細に関しては、こちらを御覧ください。 www.kurashiru.com この

                                                                    Aurora MySQL 5.7とRailsで実現する全文検索機能 - dely Tech Blog
                                                                  • RDS Proxyが無意味になる恐怖の現象「ピン留め」を回避するための基本的な設定値について | DevelopersIO

                                                                    CX事業本部@大阪の岩田です。 RDS Proxyを利用するとRDS ProxyにプールされたDB接続を複数のDBクライアントで使い回すことができ、限られたDB接続を効率的に利用することが可能になります。しかし複数のDBクライアントが安全にDB接続を共有できない場合、RDSProxyはコネクションプール内のDB接続を特定のDBクライアントに対して固定してしまいます。これが「ピン留め」と呼ばれる現象で、このピン留めが発生するとRDS Proxyを利用するメリットが失われてしまいます。 このブログでは「ピン留め」を回避するための基本的なパラメータ調整についてご紹介します。 環境 今回利用した環境です こちらのブログとほぼ同様の設定にしてクライアントからの同時接続数が実質1に制限されるようにしています。 RDS for PostgreSQL 11.8-R1 インスタンスクラス db.t3.mic

                                                                      RDS Proxyが無意味になる恐怖の現象「ピン留め」を回避するための基本的な設定値について | DevelopersIO
                                                                    • Aurora Serverless v2を本番導入した話 〜検討や導入時のポイント・得られた効果について〜 - ZOZO TECH BLOG

                                                                      はじめに こんにちは。SRE部ECプラットフォーム基盤SREブロックの石田です。 本記事では、Aurora Serverless v2を本番導入するにあたってどのような検討をし、どのように導入していったか、また導入後に得られた効果について紹介します。 はじめに Aurora Serverless とは 背景 比較検討 比較内容 方針の決定 アーキテクチャ 導入 1. Aurora Serverless v2を手動で構築 2. AWS CloudFormationでProvisioned型Aurora MySQLバージョン3を再構築 3. AWS CloudFormationでAurora Serverless v2に移行 4. 負荷試験・障害試験 負荷試験 障害試験 導入により得られた効果 柔軟なスケーリング インフラコスト 最後に Aurora Serverless とは Aurora

                                                                        Aurora Serverless v2を本番導入した話 〜検討や導入時のポイント・得られた効果について〜 - ZOZO TECH BLOG
                                                                      • ストレージエンジンの話 ~InnoDBのredo logをざっくり理解する~ - shallowな暮らし

                                                                        こんにちは。id:shallow1729です。最近Database Reliability Engineerというお仕事を始めたのでデータベースの勉強をしたりMySQLのソースコードを読んだりしています。仕事でMySQLが標準で用いているInnoDBのソースコードを読む機会があったのでなんかアウトプットしたいなと思いつついきなりコアな話するのもなって思ったのでざっくりとストレージエンジンの話をしようかなと思います。とはいえストレージエンジンは本当にいろいろな仕事をしていて全部を書こうとするとものすごい事になりそうだった(+僕も分かってない部分が多い)ので、とりあえず第一回はredo logというやつを中心にストレージエンジンを追っていこうと思います。なるべく一般的なデータベースの設計の話を軸に置きつつInnoDBの場合の話もしていこうと思います。読者としてはMySQLのようなリレーショナル

                                                                          ストレージエンジンの話 ~InnoDBのredo logをざっくり理解する~ - shallowな暮らし
                                                                        • 未来の自分に対し「こんなDB設計にして申し訳ない」とツイート→その通りになってしまった人の話

                                                                          補足説明: MySQLには、バージョン5.7から「JSONデータ型(JSON Data Type)」と呼ばれる概念が登場しています。これにより、JSON型を直接入れられるカラムを作成できます。 便利な一方、一般的なRDBの正規化を崩すことになりますので、仕様には注意が必要です。詳しくはこちらをご覧ください。 リンク WPJ もう知ってた? MySQL 5.7でNoSQLっぽくJSONデータを扱う方法 MySQL 5.7では、JSONデータを「JSON型」としてネイティブで扱えます。サンプルを見ながら、基本的な使い方を確認しましょう。 ※本記事は2016年5月31日に掲載した記事を一部再編集して更新したものです。執筆時点の技術情報をベースにしています。 「SQL vs NoSQL: The Differences」で紹介したように、SQLとNoSQLの境界線は、両言語が他方の特徴を取り入れる

                                                                            未来の自分に対し「こんなDB設計にして申し訳ない」とツイート→その通りになってしまった人の話
                                                                          • 【塩漬けダメ絶対】AWSのAurora&RDSがDBエンジンの延長サポートを有償提供! - Qiita

                                                                            日本時間 2023/9/1(金)の深夜、AWSより以下のアップデートが発表されました! 土曜の朝からXで早速話題になっています。 ニュースリリース ブログ ※全体的にまだ日本語ドキュメントに反映されていない情報が多いので、リンク先にRDS Extended Supportに関する言及が見られない場合は言語設定をEnglishに切り替えて再確認することをお勧めします。 3行でまとめると? AWSはAuroraおよびRDSのDBエンジンの所定サポート終了後、最大3年の延長サポートを有償提供する 対象のDBエンジンはMySQL 5.7 & PostgreSQL 11および、それ以降の主要バージョン 2023年12月から延長サポートへのオプトインが可能。実際の課金開始はバージョン依存。最速でも2024年3月1日以降となる クラウドにおける「DBバージョンアップ」の扱い AWSクラウドが提供するマネ

                                                                              【塩漬けダメ絶対】AWSのAurora&RDSがDBエンジンの延長サポートを有償提供! - Qiita
                                                                            • 【学びたい技術分野別に50冊】高額な技術書がKindleで50%以上セール開催中でお買い得 - 仮想サーファーの日常

                                                                              Amazonで、【最大50%OFF】高額書籍キャンペーンが開催されています! 開催期間は2020年7月10日(金)~2020年7月23日(木)です。 Docker、CI/CD、Python、Ruby、Flutter、Vue.js/Nuxt.jsなどなどエンジニアが学びたい技術の本が多数セール対象になっているので、ぜひともチェックしたいですね。 【最大50%OFF】高額書籍キャンペーンを見てみる この記事では、一気に技術書を読んで技術力を伸ばしたい方向けに、学びたい分野別にKIndleセール本をまとめました。 JavaScriptに入門したい JavaScript逆引きレシピ 第2版 山田 祥寛 (著)、翔泳社 (出版)、2018年10月15日 (発売) 50%OFF Kindle¥1,540、単行本¥3,080(2020年7月12日現在) JavaScript開発必須の知識・現場のテクニッ

                                                                                【学びたい技術分野別に50冊】高額な技術書がKindleで50%以上セール開催中でお買い得 - 仮想サーファーの日常
                                                                              • MySQL (MariaDB) でハマった仕様 - kamocyc’s blog

                                                                                以前,MySQL (正確にはMariaDB) を使った際,いろいろはまったので記載します. 使ったバージョンが古い(MariaDB 10.1.37, MySQL 5.7くらいに相当)なので,最新版では治っているところもいくつかあります. sql_modeをデフォルトの設定で使わない これはよく言われていることですが,sql_modeがデフォルトでは変な値が入ったりエラーになって欲しいところがスルーされたりしてまずいので,適切なsql_modeを設定します. 第18回 MySQL5.7のデフォルトのSQLモードを確認してみる:MySQL道普請便り|gihyo.jp … 技術評論社 MySQLのSQLモードをstrictモードで設定する。 - Qiita ただ,MySQL 5.7以降はデフォルト設定が改善されたようです.(でも確認すべきですが) MySQL :: MySQL 8.0 Refer

                                                                                  MySQL (MariaDB) でハマった仕様 - kamocyc’s blog
                                                                                • [MySQL]AUTO_INCREMENTのidが戻る

                                                                                  こんにちは、M-Yamashitaです。 今回の記事は、MySQLのAUTO_INCREMENTのidが戻ってしまう話です。 以前、RailsとMySQLを使うサービスにて、Mysql2::Error: Duplicate entry 'xxx' for keyが発生しました。このエラーの原因を調べたところ、テーブルでAUTO_INCREMENTとなっているカラムのidが戻って採番されており、その影響でエラーが発生していることがわかりました。当時の私の認識では、AUTO_INCREMENTとなっているidは、戻って採番されることはないと思っていたので非常に驚きました。 そのため、このidが戻る現象について調べて記事にしたいと思い、執筆しました。 なお、この記事ではMySQL 5.7を使用しています。 この記事で伝えたいこと MySQL再起動によりAUTO_INCREMENTのidが戻って採

                                                                                    [MySQL]AUTO_INCREMENTのidが戻る