並び順

ブックマーク数

期間指定

  • から
  • まで

281 - 320 件 / 1529件

新着順 人気順

innodbの検索結果281 - 320 件 / 1529件

  • InnoDB のロック機構について

    n 番煎じネタですが、一度やってみたかったので手元で検証してみました。 特段新しいものは無いと思いますが、インテンションロックと各種ロックタイプを網羅的に挙動検証する記事は自分の観測範囲にはなかったはず? 図を用意できたら読みやすかったと思うのですが、怠慢したので innodb_status_output_locks の出力でご容赦ください データセット今回使うデータセットです mysql> show global variables like ‘version’; + — — — — — — — -+ — — — — + | Variable_name | Value | + — — — — — — — -+ — — — — + | version | 5.7.26 | + — — — — — — — -+ — — — — + 1 row in set (0.00 sec)mysql>

      InnoDB のロック機構について
    • 第137回 MySQLTunerを使ってチューニングの足がかりを見つけてみる | gihyo.jp

      皆さんはMySQLのパラメータや変数をどのように設定しているでしょうか? MySQLやデータベースを運用する専用のチームの人たちがいて、秘伝のタレやノウハウが蓄積されて、その設定を使っているのかもしれません。しかし、そういったチームがなくMySQLのチューニングを行いたい場合に、何か手がかりが欲しいと思うこともあるでしょう。そんな場合に、簡単に使用できるMySQLのおすすめの設定を教えてくれる「MySQLTuner」を、今回は説明していきます。 検証環境 今回は、第125回 phpMyAdminでDockerで建てたMySQLにアクセスするで記載したdocker-composeを利用して作成します。手元で簡単に試せるように、GitHubの筆者のレポジトリにサンプルコードとして置いてあるので、気軽に試したい方はgit cloneして試してみてください。試すにはdockerとdocker-co

        第137回 MySQLTunerを使ってチューニングの足がかりを見つけてみる | gihyo.jp
      • #isucon #isucon10 予選参加記: 決勝行けましたの巻 - polamjaggy

        最終スコア 2335 で本戦出場です。スコアそのものは不完全燃焼感が否めないけどクッソ嬉しい。 isucon.net github.com レポジトリはこれ。チーム名は「ヌルポインターマリアユニバース」*1、メンバーは漏れと id:wtatsuru id:Pasta-K。やったことはこの repo みてくれ (master ブランチの内容がスコアのあれです) チームメンバーのエントリはこれら: wtatsuru.hatenadiary.com ビール2L飲んだけど記憶が生きてるうちの個人的反省箇条書き: なぞって検索のN+1を完全に2クエリ (O(1)) にできたのはよかった Revert "なぞってN+1関連をrevert" 再チャレンジ by polamjag · Pull Request #39 · tatsuru/isucon10q · GitHub ビッグデータ SQL テクニッ

          #isucon #isucon10 予選参加記: 決勝行けましたの巻 - polamjaggy
        • 第123回 ロッキングリードのNOWAITとSKIP LOCKEDオプションについて | gihyo.jp

          InnoDBの通常のSELECTステートメントはロックを取得しません。よって、同一のトランザクション内にSELECTしたデータを使用して更新する際に、間に別のトランザクションがすでに同じ行を更新していると、ロストアップデートといったアノマリーが起こったりします。それを防ぐために、ロッキングリードを使用することでデータを保護することが可能です。 ロッキングリードには、排他行ロックを取得するためのステートメントSELECT...FOR UPDATEと、共有行ロックを取得するためのステートメントSELECT...FOR SHAREがあります。従来のMySQLでは共有行ロックを取得するステートメントSELECT...LOCK IN SHARE MODEが使われていました。MySQL 8.0からはこれがFOR SHAREに置き換わりました。 また、下位互換のためLOCK IN SHARE MODEは

            第123回 ロッキングリードのNOWAITとSKIP LOCKEDオプションについて | gihyo.jp
          • 週刊Railsウォッチ(20200804後編)「RubyKaigi Takeout 2020」9月オンライン開催、メールバリデータtruemail、Gitのmasterが変更可能にほか|TechRacho by BPS株式会社

            2020.08.04 週刊Railsウォッチ(20200804後編)「RubyKaigi Takeout 2020」9月オンライン開催、メールバリデータtruemail、Gitのmasterが変更可能にほか こんにちは、hachi8833です。「Kaigi on Rails」のプロポーザルがいっぱい集まったそうです🎉。 【CFPフォームクローズのお知らせ】 先程CFPフォームがクローズされました。予想を越えてたくさんの方にプロポ―ザルを提出いただき、運営チーム一同大変感謝しております。これから運営チームで選定を進め、8月中旬を目処に結果をお伝えする予定です。#kaigionrails — Kaigi on Rails (@kaigionrails) August 1, 2020 さらにこんなイベントもあったことに後から気づきました。 こんばんは!https://t.co/52TgXP8P

              週刊Railsウォッチ(20200804後編)「RubyKaigi Takeout 2020」9月オンライン開催、メールバリデータtruemail、Gitのmasterが変更可能にほか|TechRacho by BPS株式会社
            • MySQL を使って EC2 r6g.large vs r5.large(mysqlslap 対決)をやってみた - Qiita

              これは MySQL Advent Calendar 2020 21 日目のエントリです。 昨日は mita2 さんの「MySQL バイナリログをマスキングするツールを作ってみた」でした。 そして、↓の記事の続きでもあります。 AWS の EC2 Graviton2 インスタンスに MySQL をインストールしてみた(だけ) 前回はタイトルどおり本当に(R6g インスタンスに)MySQL をインストールしただけでしたので、今回はmysqlslapを使って R5(r5.large)インスタンスと比較してみます。 ※mysqlslapの説明は以下のページにあります(使うのは 8.0 用ですが基本は同じ)。 4.5.7 mysqlslap — 負荷エミュレーションクライアント(MySQL 5.6 リファレンスマニュアル) (いまさらですが、表中の--auto-generate-sql-load-t

                MySQL を使って EC2 r6g.large vs r5.large(mysqlslap 対決)をやってみた - Qiita
              • オラクル、MySQLからオブジェクトストアにある最大400テラバイトのCSVファイルなどにクエリを高速実行できる「MySQL HeatWave Lakehouse」発表。Oracle CloudWorld 2022

                オラクル、MySQLからオブジェクトストアにある最大400テラバイトのCSVファイルなどにクエリを高速実行できる「MySQL HeatWave Lakehouse」発表。Oracle CloudWorld 2022 オラクルは米ラスベガスで10月17日から4日間に渡って開催したイベント「Oracle CloudWorld 2022」で、MySQL HeatWaveからオブジェクトストアのデータファイルに対して直接クエリを発行できる「MySQL HeatWave Lakehouse」を発表しました(日本オラクルの発表)。 [News] Oracle Announces MySQL HeatWave Lakehouse with 17X Faster Query Performance vs. Snowflake and 6X Faster than Redshift on 400 TB Wo

                  オラクル、MySQLからオブジェクトストアにある最大400テラバイトのCSVファイルなどにクエリを高速実行できる「MySQL HeatWave Lakehouse」発表。Oracle CloudWorld 2022
                • Laravelで楽観的ロックをつくってみる - Qiita

                  Laravelには悲観的ロックの機能は備わってるけど、楽観的ロックの機能が用意されていないっぽいのでつくってみました。 そもそも悲観的ロック・楽観的ロックとは?? 書きたい事から外れるので、ざっくりというと、、 悲観的ロック:自分がデータを取ってきた時点でロックをかけて、他の人にはそのデータを取ってこれないようにする。 楽観的ロック:誰でもデータを取ってこれるけど、先に更新した人が勝ちで、更新前のデータを後から更新しようとしてもダメ。 わかりやすく丁寧に説明してくれている記事はこちら↓ 「排他制御(楽観ロック・悲観ロック)の基礎」 「データベースの「ロック」という概念は2種類ある」 ということで、今回は「楽観的ロック」を作ってみます。 たまに見かける「他の人が変更してるので、画面更新して最新の情報を表示してね」的なメッセージが出るアレです。 今回は管理画面で「タイトル」と「本文」だけがある

                    Laravelで楽観的ロックをつくってみる - Qiita
                  • awesome-mysql-performance - MySQL/MariaDBのパフォーマンスを改善するための情報をまとめたリンク集 | ソフトアンテナ

                    オープンソースのリレーショナルデータベース管理システム「MySQL」。その派生版である「MariaDB」とともに高速かつ無料で利用できることから高い人気を集めています。 本日紹介する「awesome-mysql-performance」は、それらデータベースシステムのパフォーマンスを最適化するための情報をまとめたリンク集です。 MySQLやMariaDBを単にインストールして使用するための方法を説明した情報はインターネット上に多数存在しますが、より深い見識が必要となるパフォーマンス改善のための情報はあまり多くはありません。 データベースサーバーを運用してみてパフォーマンスの低下に悩まされている方必見の情報といえそうです。 サーバーの設定からInnoDBの最適化 同リンク数には以下の情報が含まれています。 Ten MySQL performance tuning settings after

                      awesome-mysql-performance - MySQL/MariaDBのパフォーマンスを改善するための情報をまとめたリンク集 | ソフトアンテナ
                    • Percona XtraBackup: 高性能DBバックアップツール [DeNA インフラ SRE] | BLOG - DeNA Engineering

                      2024.02.27 技術記事 Percona XtraBackup: 高性能DBバックアップツール [DeNA インフラ SRE] by Kohei Okazaki #infra-quality #infra-delivery #stabilization #technical-verification #datastore #portability #pxb #mysql はじめに こんにちは、IT基盤部にてインターンとして活動している岡崎です。現在、私はパブリッククラウドチーム (以下、PCA)に所属しており、いくつかの施策に携わっています。 現代のビジネス環境において、クラウドリソースの柔軟な移動と管理は、事業継続性と革新性の両立に不可欠です。この重要なニーズに応えるべく、私たちPCAチームでは、クラウドリソースのポータビリティに関する総合的な施策を進めています。これは、アプリケー

                        Percona XtraBackup: 高性能DBバックアップツール [DeNA インフラ SRE] | BLOG - DeNA Engineering
                      • MySQL InnoDBの領域最適化 - Qiita

                        for i in {1..100000}; do mysql -u root -e "INSERT INTO test.users set uuid=uuid(), id=uuid();"; done その他: innodb_buffer_pool_instances: 1 (単純化のため) 最適化の動作確認 次の順に操作を行い最適化/断片化の様子を確認します. ランダムInsert mysqldump optimize ランダムInsert MySQLが苦手とされるランダムInsertを領域管理の面から確認して行きたいと思います. ランダムInsert後の初期状態のディスク容量およびbuffer poolの状態を確認します. $ sudo ls -lah /var/lib/mysql/test/users.ibd -rw-r-----. 1 mysql mysql 44M 12月 23

                          MySQL InnoDBの領域最適化 - Qiita
                        • Redshift Federated Query for RDS/Aurora MySQL をつかったType-2 Slowly Changing Dimensionの実装 - KAYAC engineers' blog

                          こんにちは。技術部の自称データエンジニアの池田です。 Redshift Federated Query for RDS/Aurora MySQL(Federated Query for MySQL)がめでたくGAになりました。 Federated Query for MySQLを使うと、RedshiftからAurora MySQLにクエリを発行し、その結果をRedshift上で利用することができます。 今回は、この機能を使ったType-2 Slowly Changing Dimension(SCD2) の実装の話をします。 aws.amazon.com TL;DR Change Data Capture(CDC)を実装・運用するほどじゃないけど、State Sourcingなテーブルの変更履歴を追跡したいときには、SCD2を使うと嬉しいです。 Federated Query for MyS

                            Redshift Federated Query for RDS/Aurora MySQL をつかったType-2 Slowly Changing Dimensionの実装 - KAYAC engineers' blog
                          • トランザクションのネストの使い方まとめた(初心者向け) - Qiita

                            トランザクションのネストについてまとめてみました どう記述したらネストができるの? ロールバックした時の挙動は? などなどまとめてみました 自分がよく使うMySQLとRails(ActiveRecord)について記載します。他のDBやフレームワークでは多分話が変わりますのでご注意ください 前提 ネストしたトランザクションの挙動 ネストしたトランザクションって、正確な挙動がこうあるべきという決まりがあるのかどうかは筆者はよく知りません ここでは、以下のような挙動を満たすことを目的にします トランザクションの内部に、もう一つトランザクションを貼る 内側のトランザクションがロールバックした場合、外側のトランザクションには影響を与えない 外側のトランザクションがロールバックした場合、内側のトランザクションもロールバックする 内側だけコミットされてしまうと、外側のトランザクションから見ると一貫性が破

                              トランザクションのネストの使い方まとめた(初心者向け) - Qiita
                            • Concurrency Control Protocolをゼロから設計する - nikezono

                              #長編 皆さん,初めまして.NTT SICの中園 (nikezono) です. この記事は 自作DBMS Advent Calender 2020 の 17 日目の記事です. この記事では,自作DBMSにトランザクションの機能を載せる際に必要な "Concurrency Control" (以下CC) について,プロトコルを設計する際に必要なノウハウを紹介します. プロトコルの考案という作業は,既に提案されているものを追実装するのとはかなり趣が異なります.具体的には,数理的な証明にかける作業の割合がかなり大きくなります.この作業を怠って,雰囲気で実装をしたり改変をしたりすると,ほぼ間違いなく処理の正しさが担保されません. しかし,得られるリターンは大きく,特定のワークロードを狙ったデータベースであれば,それに特化した性能を出すプロトコルを作ることが容易くできるようになります.特に,インメモ

                                Concurrency Control Protocolをゼロから設計する - nikezono
                              • Why puma workers constantly hung, and how we fixed by discovering the bug of Ruby v2.5.8 and v2.6.6

                                While running Rails puma servers in production, we were seeing the incident that some old worker processes suddenly got stuck regardless of no change in the amount or trend of requests. I found out the root cause and reported it to the upstream. This issue still exists in Ruby 2.6.0 and can be found as far back as Ruby 2.5.0. If you just want a summary of the bug, see ruby-lang#17669. What Happene

                                  Why puma workers constantly hung, and how we fixed by discovering the bug of Ruby v2.5.8 and v2.6.6
                                • プログラマのための技術情報共有サービスを爆速にせよ!― リクルート社内ISUCON 2021 winter レポート | Recruit Tech Blog

                                  概要 まえがき 先日、「R-ISUCON 2021 Winter」が開催されました。ISUCON とは、お題となる Web サービスについてレギュレーションの中でパフォーマンス・チューニングを行い、ベンチマークの得点を競う競技です。(※) リクルート社内ISUCON はその名の通り、リクルートグループ内のエンジニアを対象とした社内 ISUCON に当たります。平時では合宿所を借りて一泊二日での開催でしたが、今回は2月26日のみの半日・オンラインでの開催となりました。 ※「ISUCON」は、LINE株式会社の商標または登録商標です。 お題 今回のお題は、「Niita」という架空の技術情報共有サービスになります。こちらはNTT コミュニケーションズ様が過去に開催した「N-ISUCON 2019」のお題をお借りしたものとなります。 モチーフとなったサービスと同様、下記の機能が実装されています。

                                    プログラマのための技術情報共有サービスを爆速にせよ!― リクルート社内ISUCON 2021 winter レポート | Recruit Tech Blog
                                  • MySQL5.6のオンラインDDLでメタデータロックがかかった話 - R-Hack(楽天グループ株式会社)

                                    こんにちは、ラクマの宮崎です。 MySQLのオンラインDDLを実行する際にメタデータロックがかかってしまい困ったので、オンラインDDLとメタデータロックについて調べて手元で試したことをまとめました。 MySQLのバージョンは 5.6、ストレージエンジンは InnoDB です。 この記事の多くは、MySQL 公式ドキュメントの以下のページを参考に書いています。 公式ドキュメント①:14.11.1 オンライン DDL の概要 公式ドキュメント②:14.11.2 オンライン DDL でのパフォーマンスと並列性に関する考慮事項 DDLとは オンラインDDLとは オンラインDDLに対応しているDDL Ruby on RailsのMigrationでオプションをつける方法 オンラインDDLの注意点とWaiting for table metadata lock が発生するケース Waiting for

                                      MySQL5.6のオンラインDDLでメタデータロックがかかった話 - R-Hack(楽天グループ株式会社)
                                    • Amazon RDS Aurora MySQLでデッドロックのログを出力して読む方法

                                      どうしたの?スタディストwebアプリグループでは、毎朝「エラーを見る会」というものを実施しています。「エラーを見る会」は、日々発生しているサーバーエラーを把握し、顧客影響(被害)を最小限にする目的の元、webアプリグループメンバーで行われている会です。そこでは、サーバー上で出たエラーを見て、「このエラーは早めになおしたいね」とか「このエラーはバックログに積んであとでなおそう」といった話し合いを行っています。 「エラーを見る会」で、以前より「ActiveRecord::Deadlocked」の発生を確認していましたが、詳細な原因を特定できていませんでした。そこで原因特定のために、ログ出力を行った事例について今回ご紹介します。 デッドロック情報を出力する弊社では、Amazon RDS Aurora MySQLを使用しております。 原因を調べるにあたり、ストレージエンジン(InnoDB)に関する

                                        Amazon RDS Aurora MySQLでデッドロックのログを出力して読む方法
                                      • 第158回 Invisible Columnsの使いどころ | gihyo.jp

                                        MySQL 8.0.23では、新たな機能としてInvisible Columnsが導入されました。この機能は、あるカラムを「存在はしているけれども明示的に指定しない場合は参照しないカラムとして扱う」ことができるようになっています。今回はこのInvisible Columnsの機能について見ていきましょう。 なお、似た機能である、invisible indexesについては第110回 Invisible Indexesを使って気軽にチューニングを始めてみるで紹介しておりますのでそちらをご参照ください。また、今回利用しているMySQLのバージョンは8.0.26となります。 Invisible columnsのあるテーブルの作成 Invisibleなカラムのあるテーブルを作成するには、InvisibleにしたいカラムにINVISIBLEをつけてCREATE TABLE文で実行するか、ALTER

                                          第158回 Invisible Columnsの使いどころ | gihyo.jp
                                        • MySQL のロック概観

                                          MySQL を扱っているとたまに「このクエリだと何に対してロックを取るんだっけ?」、「デッドロックのエラー出てるけど原因がわからない」等悩むことがあるので、MySQL におけるロックの挙動を雰囲気だけでも理解したいなと思いました。 MySQL のロックまわりに関しては検索すれば既に多くの解説が得られるので、ここではそれらを参考にしながら自分にとってポイントになる部分を適宜まとめたりサンプルを実行したりしています。 なお途中出てくるサンプルは MySQL 5.7 (not 8.0) の REPEATABLE READ で確認したものです。 トランザクション分離レベル consistent read と locking read shared lock と exclusive lock InnoDB Locking DML 文は暗黙的に exclusive lock を取る 検索に使用された行

                                          • CloudSQLとお友達になる | srockstyle

                                            TL;DR 仕事でCloudSQLを触っているので知見を書く。 結論から言うと、GCP特有のポイントにいくつか気をつければ、あとはMySQLをチューニングするのと対して変わらない。 はじめに パラメータはインスタンスタイプを変えたところで自動で変わってくれない。 なので、ちゃんとしたいなら自分で変えてあげる必要がある。ログはデフォルトでは吐き出さないので出力する設定&ファイルに吐き出す設定にする、など。 query_cache_typeもデフォルトoff。もろもろパラメータの設定はアプリケーションにあわせて設定していかないと、インスタンスタイプあげてもお金の無駄遣いになる。 ちなみにinnodb_buffer_pool_sizeだけはCloudSQLは自動で変えてくれる。db-n1-standard-1のインスタンスはメモリ3.7Gとかだけど、2Gとかに勝手にあげてくれた。 ディスクサイズ

                                              CloudSQLとお友達になる | srockstyle
                                            • 今週のはてなブログランキング〔2021年5月第4週〕 - 週刊はてなブログ

                                              はてなブログ独自の集計による人気記事のランキング。5月16日(日)から5月22日(土)〔2021年5月第4週〕のトップ30です*1。 # タイトル/著者とブックマーク 1 「スタートアップだからテストを書かない」は正しいか - An Epicurean by id:Songmu 2 マーソ株式会社を退職します - ikasama over technology by id:ikasamak503 3 2.4GHz帯無線LANのチャネルはぶつけてしまった方がよい - hgot07 Hotspot Blog by id:hgot07 4 ワクチン予約接種関連のシステムトラブルについてまとめてみた - piyolog by id:piyokango 5 世田谷区長の保坂展人氏がツイートした6月末期限のワクチンが、なぜか「デマ」あつかいされている件について - 法華狼の日記 by id:hokke

                                                今週のはてなブログランキング〔2021年5月第4週〕 - 週刊はてなブログ
                                              • DBの負荷分散手法 | エンジニアの何でもメモ帳

                                                DBの負荷分散の手法について世の中にある手法についてかなり忘れてしまってきているので、最勉強を兼ねてざっくりと調べてみました。 設計の見直しとチューニング 負荷分散では無いですが、分散設計を考える前に、設計の見直しや、チューニングで救えるケースの方が多いと思うので少しだけ。 設計の見直しやチューニングをしないと、無限にリソースが必用になるので、ここはある程度きちんとやった方が良いと思う。(オンプレでは新規 HWを調達するのは難しいので、通常これをやるしかなくなる) DBの設計を見直す 正規化(データの冗長製の排除)だけだとデータ結合が必用になる事がありパフォーマンスに問題が出ることがある。非正規化(データを冗長に持つ)事も考える。 「スケールアウト」の所で後述するが、既存の DB でデータのリレーションが薄いものは、別 DBとして分割する事で負荷分散される事もできる。 DBのチューニング

                                                  DBの負荷分散手法 | エンジニアの何でもメモ帳
                                                • 第107回 CREATE TEMPORARY TABLEによる一時テーブルの利用 | gihyo.jp

                                                  MySQLには一時テーブルを利用するのに便利なCREATE TEMPORARY TABLE構文があります。これは利用しているセッション内だけで有効なテーブルを作成し、セッションが閉じたときに自動的にテーブルが削除される構文になります。 今回はCREATE TEMPORARY TABLE構文の挙動を確認していきましょう。なお、一時テーブルはInnoDB, MEMORY, MyISAM, MERGEストレージエンジンで利用可能ですが、今回は前提としてMySQL 8.0.17のInnoDBでの利用となります。 CREATE TEMPORARY TABLEを使って一時テーブルを作成する 一時テーブルを利用するには、CREATE TEMPORARY TABLES権限を持つユーザーがCREATE TEMPORARY TABLE構文を実施する必要があります。CREATE TEMPORARY TABLES

                                                    第107回 CREATE TEMPORARY TABLEによる一時テーブルの利用 | gihyo.jp
                                                  • 第114回 MySQL 8.0から使えるさまざまな権限について | gihyo.jp

                                                    MySQLには、さまざまな操作や動作レベルにおいて適用される権限があります。それらは権限レベルによって分けられています。権限レベルについては、以前の記事 第69回 MySQLの権限レベルについてをご参照ください。 また権限の管理方法として、MySQL 5.7とそれ以前までは、静的権限のみで管理されていました。MySQL 8.0からは動的権限が追加されました。静的権限はすでにサーバに組み込まれた権限であり、動的権限はほとんどのものがサーバ起動時に定義されます。中にはプラグインやコンポーネントをインストールすることによって定義されるものもあります。 今回は、MySQL 8.0から追加された権限について紹介したいと思います。MySQLは2020/01/10現在最新のMySQL 8.0.18を使用しています。 静的権限 MySQL 8.0から新たに追加された権限はCREATE ROLEとDROP

                                                      第114回 MySQL 8.0から使えるさまざまな権限について | gihyo.jp
                                                    • Performance Insightsを使ったAmazon Aurora MySQL のデータベースパフォーマンス分析 | NHN テコラス Tech Blog | AWS、機械学習、IoTなどの技術ブログ

                                                      はじめに 本記事では Aurora MySQL 使用時の Performance Insights を使った DB パフォーマンス分析について記述します。 データベースを日々運用していると、データベースの処理が遅いなんてことがあるかと思います。他にも、CPU 使用率やメモリ使用率などがだんだん高くなっているが原因がわからないという課題を抱えている方必見の RDS 機能についてご紹介します。 なお、本分析内容は Aurora MySQL5.7 互換が対象となっております。他エンジンやバージョンでも Performance Insights の使い方については変わりないですが、パフォーマンス分析をする際に見ていく項目が異なるためご注意ください。例えば、待機イベントの内容については、各 DB エンジンやバージョンによって大きく異なります。 また、本環境では、MySQL のパフォーマンススキーマは

                                                        Performance Insightsを使ったAmazon Aurora MySQL のデータベースパフォーマンス分析 | NHN テコラス Tech Blog | AWS、機械学習、IoTなどの技術ブログ
                                                      • MySQL8.0.27や8.0.28あたりのmemory/innodb/hash0hashやut0new.hなどの話 | GREE Engineering

                                                        こんにちわ。せじまです。 先日、プライベートで新しいPCを買ったので試しにVisual Studio 2022(version 17.7.2)でMySQL8.0.34をデバッグビルドしようと思ったら、sql_main がC2678でビルドできなくなってました(2023-08-29時点)。 Hyper-V上でen_USなWindows11開発環境を立ち上げて試してもC2678が発生したので、日本語版のWindowsに限った問題でもなさそうな気がします。 https://developercommunity.visualstudio.com/ を見ると、コンパイラ周りで "Fixed - Pending Release" な件がいくつか見受けられたので、しばらく様子見しようかなと思っています。 MySQL8.1.0や8.0.34をデバッグビルドする話を書こうかと思っていたのですが、今回は別の話

                                                          MySQL8.0.27や8.0.28あたりのmemory/innodb/hash0hashやut0new.hなどの話 | GREE Engineering
                                                        • MySQL 外部キー制約とインデックスに必要な知識 - LayerX エンジニアブログ

                                                          バクラク請求書 でリードエンジニアをしているSaaS事業部の @yyoshiki41(中川佳希)です! バクラクシリーズでは、経理向けSaaSに始まりコーポレートDXをサポートする複数プロダクトを提供しています。 サービスローンチから1年経過したこともあり、2021年12月から2022年1月は短い間に事業部として怒涛のリリースの日々でした。 LayerX インボイスから、バクラクへサービス名称を変更 1周年のインフォグラフィックの公開 TV CM の開始 サービス全体で変化はありましたが今後も変わらずプロダクト開発を通して、経理・コーポレートチームの仕事がバクラクになるようサポートしていきます! 今回の記事は、MySQL の外部キー制約とインデックスについてです。 Foreign Keys 多くの人が馴染みあると思いますが改めて整理すると、2つの役割を担っていると言えます。 複数のテーブル

                                                            MySQL 外部キー制約とインデックスに必要な知識 - LayerX エンジニアブログ
                                                          • 週刊Railsウォッチ(20201201前編)switch_pointがActive Record 6.0でサポート終了、Rails DBトランザクションの落とし穴ほか|TechRacho by BPS株式会社

                                                            2020.12.01 週刊Railsウォッチ(20201201前編)switch_pointがActive Record 6.0でサポート終了、Rails DBトランザクションの落とし穴ほか こんにちは、hachi8833です。本日よりTechRachoアドベントカレンダー2020が始まりました。どうぞよろしくお願いします。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙇 ⚓ Rails: 先週の改修(Rails公式ニュースより) 今週は公式更新情報から見繕いました。 元記事: Bugfixes, improvements and m

                                                              週刊Railsウォッチ(20201201前編)switch_pointがActive Record 6.0でサポート終了、Rails DBトランザクションの落とし穴ほか|TechRacho by BPS株式会社
                                                            • MySQL Shell dumpInstance でバックアップ中はDDL が待機させられる - mita2 database life

                                                              MySQL Sever Blog に MySQL Shell 8.0.21 の Dump / Import 機能についてエントリーが投稿されています。 並列化により非常に高速に Dump / Import 出来ることなどが示されてます。非常に強力なツールであることが感じられます。 MySQL Shell Dump & Load part 1: Demo! | MySQL Server Blog とりあえず動かしてみる \help util.dumpInstance で説明が見れます。 threads や maxRate オプションでパフォーマンスの調整ができそうです。 $ mysqlsh root@localhost mysqlsh > \help util.dumpInstance NAME dumpInstance - Dumps the whole database to files

                                                                MySQL Shell dumpInstance でバックアップ中はDDL が待機させられる - mita2 database life
                                                              • LINEマンガのデータベースをシャーディングしました (データベースエンジニア編)

                                                                LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog はじめに こんにちは、データベース室の小田です。 今回はLINEマンガのデータベースをシャーディングした作業について、サーバエンジニア編とデータベースエンジニア編に分けてご紹介したいと思います。 本エントリでは、シャーディングに至った経緯、データベースエンジニア側で検討したことについて書いていこうと思います。 シャーディングに至った経緯 サービスを引継ぐ 前段として少し昔の話をします。私がLINEマンガの担当データベースエンジニアとなったのは、2018年2月中旬のことでした。 LINEマンガのサービス開始が、2013年4月9日だということですので、ちょうど5周年を迎える直前ですね。前任者からは、いいタイミングだからということで

                                                                  LINEマンガのデータベースをシャーディングしました (データベースエンジニア編)
                                                                • MySQL InnoDBのギャップロックによるデッドロックを解明する

                                                                  Photo by Kat Stokes on Unsplashこんにちは。仮想通貨の損益計算ツール「Gtax」、仮想通貨の確定申告サポート「Guaridan」を提供するAerial Partnersのエンジニアインターンの伊藤です。 今回は、Aerial Partnersのチームが実際にどのような技術を用いてブロックチェーンの社会実装を進めているかをお伝えするために、僕が最近取り組んでいた、大量のレコードを捌くDB処理の実装において直面した問題についてお話させていただきます。 InnoDBのロックアーキテクチャはややこしい!例題です。以下のような操作において、一体どのような原因でデッドロックが発生してしまうのでしょうか。 テーブル内容 > SHOW COLUMNS FROM t1;+-------+---------+------+-----+---------+-------+| Fie

                                                                    MySQL InnoDBのギャップロックによるデッドロックを解明する
                                                                  • 第58回 OSS-DB入門セミナー開催、MySQL 25周年、PostgreSQL 13ベータ版登場 | gihyo.jp

                                                                    OSSデータベース取り取り時報 第58回OSS-DB入門セミナー開催、MySQL 25周年、PostgreSQL 13ベータ版登場 この連載では、OSSコンソーシアム データベース部会のメンバーが、さまざまなオープンソースデータベースの毎月の出来事をお伝えしています。 OSC Online/Nagoyaで「二大OSS-DB&アプリ開発“超”入門」セミナー オープンソースカンファレンス(OSC)名古屋は会場での通常開催からオンラインに切り替わり、5月30日の開催となりました。当然ですがオンラインですから地理的な制約がありません。セミナーは5または6トラックが並ぶ充実のラインナップとなりました。 データベース部会では、オープンソースビジネス推進協議会(OBCI)と共同で企画セミナーを実施します。「⁠OSSデータベース入門セット ~二大OSS-DB & アプリ開発“⁠超⁠”入門」という2枠連続セ

                                                                      第58回 OSS-DB入門セミナー開催、MySQL 25周年、PostgreSQL 13ベータ版登場 | gihyo.jp
                                                                    • sqldef

                                                                      What is it? sqldef is a CLI tool, webasm library, and nodejs tool/library for diffing SQL schema. You can use it to manage migration of PostgreSQL and MySQL databases, using regular SQL DDL. Demo You can generate DDLs to update the DB schema: Current schema CREATE TABLE user ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(128) DEFAULT 'konsumer' ) Engine=InnoDB DEFAULT CHARS

                                                                      • MySQL5.7とMySQL8.0のパフォーマンスの違いを計測してみた

                                                                        はじめに MySQL8.0 を使ったユニットテストがどうにも遅いので、気になって計測してみた。特に Truncate が遅い気がしたので検証。 MySQL5.7(5.7.44)と MySQL8.0(8.0.28)で比較する。 検証コード iwahara/mysql_performance: 記事用のパフォーマンス計測コード 検証用テーブル 検証に使うテーブル定義は以下の通り。主キーのみのテーブルと、index を1つ、2つ、3つ設定したテーブルを用意した。 照合順序は揃えてある。 CREATE TABLE `no_index` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(256) NOT NULL, `code1` varchar(8) NOT NULL, `code2` varchar(8) NOT NU

                                                                          MySQL5.7とMySQL8.0のパフォーマンスの違いを計測してみた
                                                                        • Mysqldump with Modern MySQL

                                                                          Mysqldump with Modern MySQL Learn how to best use mysqldump in a modern version of MySQL. Mysqldump has many options (I count 111 options ?). Most of us are likely keeping it simple. Here's how I've typically exported a single database: mysqldump some_database > some_database.sql # Or with user auth mysqldump -u some_user -p some_database > some_database.sql # Or with gzip compression mysqldump so

                                                                            Mysqldump with Modern MySQL
                                                                          • Adminer〜OSSのデータベース管理〜 | OSSのデージーネット

                                                                            MySQLのデーターベース管理といえば、phpMyAdminが有名ですが、AdminerはphpMyAdminを強く意識して開発されています。ここでは、Adminerを利用することで、どのようなことができるのか。どのようなところが優れているのかを紹介します。 Adminerとは Adminerは、PHPで作成されたフル機能のデータベース管理ツールです。ライセンスはApache License version 2またはGPLv2で公開されています。phpMyAdminとは異なり、1つのファイルでデータベースの管理ができるソフトウェアです。 Adminerの特徴 Adminerは次のような特徴を持つソフトウェアです。 使いやすいインターフェース Adminerのインターフェースは非常にシンプルでphpMyAdminに比べ多くの機能が備わっています。またAdminerは複数の画面テーマが用意され

                                                                              Adminer〜OSSのデータベース管理〜 | OSSのデージーネット
                                                                            • サービス障害が発生した場合の対応方法 - hayashier Tech Blogs

                                                                              サービスを運用していると、様々な障害に遭遇することがあります。その際、原因特定のためにトラブルシューティングをしていくことになりますが、ここでは(ある程度)汎用的に適用できるトラブルシューティングを進めていく上での考え方をまとめます。 特定のサービスに向けたものではなく、一般化して記載しています。そのため、実際にはここに書かれた概念を前提に、サービス固有の知識と組み合わせてトラブルシューティングを進めていくことになります。 特にトラブルシューティングになれてない場合にはこれらを意識しておかないと、当てずっぽうな思いつきのトラブルシューティングになりやすくなります。その結果、原因特定まで遅くなったり、たどり着かない可能性も考えられます。慣れている人は無意識にできていたり、経験から原因の勘所に当たりをつけられることもあります。しかし、ここでの考え方を抑えておくと、慣れていないサービスや未知の事

                                                                              • Use the TempTable storage engine on Amazon RDS for MySQL and Amazon Aurora MySQL | Amazon Web Services

                                                                                AWS Database Blog Use the TempTable storage engine on Amazon RDS for MySQL and Amazon Aurora MySQL August 2023: This post was reviewed and updated to reflect a new parameter change in MySQL Community 8.0.28 that impacts Amazon Aurora MySQL release. MySQL 8.0 has introduced TempTable as the new, default internal temporary table storage engine to speed up query processing. The MySQL query optimizer

                                                                                  Use the TempTable storage engine on Amazon RDS for MySQL and Amazon Aurora MySQL | Amazon Web Services
                                                                                • 【超危険】【クラウドも】そのMySQLパラメータ設定、やべ〜〜〜〜かも - Qiita

                                                                                  何もわからないまま使うのは危険です!!! いきなりこんなことをかいてしまいましたが、皆さん、MySQLを安全に使ってますか? 特に金融とか顧客情報とか扱うとこ!あとDBの障害対応めんどくさいな〜ってなってる人も必見です! MySQLをクラウドでmanagaedなもの(CloudSQLとか、RDSとか)使っている方もいれば、self hostedなサーバを利用している方もいらっしゃるかと思います。 どちらにおいても、必ずこの内容は抑えておかないと危険かもしれないですよという、注意喚起的な記事です。 つまり、マネージドなRDBMSとしてMySQL使ってるあなたも、知っておくべきということです。 RDS を使っているあなたも、 CloudSQLを使っているあなたも、ぜひ読んで確認してください。 InnoDB、ちゃんと気にしていますか? MySQLを使っていますか?と書き始めましたが、この記事の中

                                                                                    【超危険】【クラウドも】そのMySQLパラメータ設定、やべ〜〜〜〜かも - Qiita