並び順

ブックマーク数

期間指定

  • から
  • まで

521 - 560 件 / 1485件

新着順 人気順

innodbの検索結果521 - 560 件 / 1485件

  • Vitess | Online DDL: why FOREIGN KEYs are not supported

    This post explains the inherent problem of running online schema changes in MySQL, on tables participating in a foreign key relationship. We'll lay some ground rules and facts, sketch a simplified schema, and dive into an online schema change operation. Our discussion applies to gh-ost, pt-online-schema-change, and VReplication based migrations, or any other online schema change tool that works wi

      Vitess | Online DDL: why FOREIGN KEYs are not supported
    • クラウド基盤とそこに乗るデータベースはどう進化したか? オラクルのデータベースとクラウドの最新動向から考察する[PR]

      クラウド基盤とそこに乗るデータベースはどう進化したか? オラクルのデータベースとクラウドの最新動向から考察する[PR] クラウドの登場と進化は、そのうえで稼働するデータベースにも影響を与えました。 クラウドでは、システムを適切に分散させ相互に連係させるアーキテクチャがスケーラビリティや高可用性を実現し、効率性を高めて従量課金によるコストを下げることにつながります。 一方でガバナンスや運用管理は、クラウドが提供するマネージドサービスや自動化ツール、自律型サービスなどを活用することが工数や人為的ミスを減らし、セキュアで統制のとれたシステムの実現につながります。 そうしたクラウド時代のデータベースとしてまず最初に登場したのがオラクルのAutonomous Databaseです。 Autonomous Databaseとしてまず最初に提供されたのがデータウェアハウスにのための自律型データベースサー

        クラウド基盤とそこに乗るデータベースはどう進化したか? オラクルのデータベースとクラウドの最新動向から考察する[PR]
      • Amazon RDS for MySQL バージョン 5.6 サポート延長のお知らせ | Amazon Web Services

        Amazon Web Services ブログ Amazon RDS for MySQL バージョン 5.6 サポート延長のお知らせ この投稿は、AWS フォーラムで案内されたアナウンスメントの参考和訳です。 Amazon RDS は MySQL メジャーバージョン 5.6 サポートを延長します。Amazon RDS をお使いのお客様は2022 年 2 月 1 日まで引き続き MySQL 5.6 の新規インスタンスを作成できますが、2022 年 3 月 1 日より MySQL 5.6 インスタンスに対する自動アップグレードが開始されます。このアップグレードは Amazon Aurora クラスターには適用されません。 以前 Amazon RDS for MySQL バージョン 5.6 のサポート終了のお知らせの中で 2021 年 8 月 3 日から自動アップグレードを行い、2021 年 9

          Amazon RDS for MySQL バージョン 5.6 サポート延長のお知らせ | Amazon Web Services
        • PowerPoint Presentation

          © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Deep Dive on Amazon Aurora Yoav Eilat Senior Product Manager, Amazon Aurora and Amazon RDS AWS © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Aurora… Enterprise database at open source price Delivered as a managed service Amazon Aurora コマーシャルデータベースの性能 と 可用性 オープンソースデータベースのシンプルさとコスト効果 MySQL, P

          • 第148回 InnoDBの行ロック状態を確認する[その2] | gihyo.jp

            前に筆者が担当した第145回に続いて、InnoDBの行ロック状態を確認する方法について紹介します。先に第145回 InnoDBの行ロック状態を確認する[その1]をご確認ください。 今回も引き続きMySQL 8.0.23を使用しています。 data_lock_waitsテーブル MySQL 8.0から追加されたperformance_schemaのテーブルであるdata_lock_waitsテーブルは、行ロックを待機している状態を確認できます。これにより、スレッド間の行ロックの依存関係を把握することができます。data_locksテーブルのどのデータロックリクエストが、data_locksテーブルのどのデータロックによってブロックされているかを示す多対多関係が実装されています。 ロック待ちが発生していると、以下のような出力を確認できます。 mysql> SELECT * FROM perfo

              第148回 InnoDBの行ロック状態を確認する[その2] | gihyo.jp
            • 第118回 MySQL Routerを使って負荷分散を検証する | gihyo.jp

              MySQL関連のミドルウェアとしてMySQL Routerというものがあります。MySQL Routerは、アプリケーションとMySQLサーバー間をルーティングするための軽量なミドルウェアです。InnoDB Clusterのアプリケーションとの接続部分としても利用されており、負荷分散や高可用性の機能があります。 今回はMySQL Routerを使い、マスター1台、スレーブ2台のMySQLサーバーに対してスレーブ側にMySQL Routerを設定し、負荷分散としてラウンドロビンで設定してみましょう。 MySQL Routerのインストール MySQL RouterはLinux、macOS、WindowsそれぞれのOSで動かすことが可能です。今回は筆者の環境であるCentOS 7に、yumコマンドを利用してMySQL Routerのバージョン8.0.19をインストールします。 $ wget h

                第118回 MySQL Routerを使って負荷分散を検証する | gihyo.jp
              • データベースカラムの文字数が191文字である理由

                この記事は、著者の許可を得て配信しています。 Why do database columns have a character length of 191? データベースのスキーマを見ていると、次のようなテキストフィールドが定義されていることがあります。 email_address varchar(191) NOT NULL これは、カラムが最大191文字の文字列に対応していて、NULLの使用ができないということを意味しています。191という数字は奇数ですが、一体なぜ191文字なのでしょうか?この記事では、ほとんどのリレーショナル・データベースで191文字の制限がデフォルトになっている歴史的な理由を解説します。 なぜtextではなくvarcharなのか? まず、最初に疑問に思うが、「なぜデータベースに保存する文字列の長さを制限するのか」ということです。最近のモダンな一般的なリレーショナル・

                  データベースカラムの文字数が191文字である理由
                • RDS Graviton2 インスタンスを試してみた(MySQL 編) - Qiita

                  先に、こちらの記事で Amazon RDS の PostgreSQL 12.4-R1 を使って Graviton2 インスタンスと Intel x86_64 インスタンスを比較してみたところ、判断が難しい微妙な結果が出ました。 AWS の RDS(PostgreSQL)で Graviton2 インスタンスを試してみた 結果の概要は以下の通りです。 m6g.xlarge(Graviton2) vs m5.xlarge(Intel x86_64) 4vCPU・メモリ 16GiB 最初に試した「3 種類の主キーでひたすらINSERT対決」では「引き分け」 追加で試したpgbenchでは m6g.xlarge に軍配が上がる ただしインスタンスを m6g.4xlarge・m6.4xlarge(いずれも 16vCPU・メモリ 64GiB)に上げてpgbenchしてみたところ、SSD(汎用 IOPS)

                    RDS Graviton2 インスタンスを試してみた(MySQL 編) - Qiita
                  • MySQL :: MySQL Shell 8.0

                    概要 MySQL Shell は、MySQL の高度なクライアントおよびコードエディタです。 このドキュメントでは、MySQL Shell のコア機能について説明します。 mysql と同様の提供される SQL 機能に加えて、MySQL Shell は JavaScript および Python のスクリプト機能を提供し、MySQL を操作するための API を備えています。X DevAPI を使用すると、リレーショナルデータとドキュメントデータの両方を操作できます。ドキュメントストアとしての MySQL の使用 を参照してください。AdminAPI を使用すると、InnoDB クラスタ を作業できます。第6章「MySQL AdminAPI の使用」 を参照してください。 MySQL Shell 8.0 は、MySQL Server 8.0 および 5.7 とともに使用することを強くお薦め

                    • 第184回 MySQL innodb_buffer_poolのウォームアップ周りのオプション | gihyo.jp

                      InnoDBストレージエンジンを扱うときにMySQLを再起動したときや、通常とは違うクエリを大量に流し終えた直後でinnodb_buffer_poolが荒れている場合、普段ではinnodb_buffer_poolに載っていたであろうはずのデータやインデックスが載っておらず、最初のうちはパフォーマンスが安定しないときがあります。これは時間がたつことでinnodb_buffer_poolがあたたまり、解決することがありますが、MySQLではこの一連の流れをウォームアップと説明しています。 MySQLはバージョン5.6からinnodb_buffer_pool_dump_at_shutdown、innodb_buffer_pool_load_at_startupという2つのオプションがあり、ウォームアップを高速化してbuffer_poolの中身をメモリに戻すことができるようになっています。今回はこ

                        第184回 MySQL innodb_buffer_poolのウォームアップ周りのオプション | gihyo.jp
                      • 【2019年10月版】docker-compose で立ち上げた MariaDBにつながらない・・・? - Qiita

                        起動直後はつながらない・・・? 昨日の記事(【2019年10月版】Apollo + Sequelize で GraphQL やるなら TypeScript バッチリの TypeGraphQL がおすすめ!)で docker-compose にて MariaDB を使用しましたが、docker-compose up で立ち上げた mariadb は起動直後に接続できないことが時々ありました。 まずは起動してみる。 以下のような docker-compose.yml を作成して version : "3" services: db: image: mariadb restart: always ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=example - MYSQL_DATABASE=example - MYSQL_USER=e

                          【2019年10月版】docker-compose で立ち上げた MariaDBにつながらない・・・? - Qiita
                        • Best practices with Amazon Aurora MySQL - Amazon Aurora

                          This topic includes information on best practices and options for using or migrating data to an Amazon Aurora MySQL DB cluster. The information in this topic summarizes and reiterates some of the guidelines and procedures that you can find in Managing an Amazon Aurora DB cluster. Determining which DB instance you are connected to To determine which DB instance in an Aurora MySQL DB cluster a conne

                          • Aurora MySQL データベースエンジンの更新 2022-11-18 (バージョン 3.02.2) (廃止) - Amazon Aurora

                            翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。 Aurora MySQL データベースエンジンの更新 2022-11-18 (バージョン 3.02.2) (廃止) バージョン: 3.02.2 Aurora MySQL 3.02.2 は一般利用可能です。Aurora MySQL 3.02 バージョンは MySQL 8.0.23 と互換性があり、Aurora MySQL 2.x バージョンは MySQL 5.7 と互換性があり、Aurora MySQL 1.x バージョンは MySQL 5.6 と互換性があります。 Aurora MySQL バージョン 3 の新機能と Aurora MySQL バージョン 3 と Aurora MySQL バージョン 2 またはコミュニティ MySQL 8.0 の違いの詳細については

                            • 第189回 information_schemaのInnoDB関連テーブル[その2] | gihyo.jp

                              以前に筆者が担当した第186回 information_schemaのInnoDB関連テーブル[その1]に続いて、information_schemaのInnoDB関連テーブルについて紹介します。先に186回の記事をご確認ください。同回と同様に、MySQL 8.0.31を使用します。 INNODB_TABLESTATSビュー INNODB_TABLESTATSビューから、InnoDBテーブルに関する統計情報のステータスを確認できます。まずは、簡単にこのビューのカラムとその意味について紹介します。 NAME… INNODB_TABLES.NAMEと同様のテーブル名 STATS_INITIALIZED… 統計情報が収集されている場合はInitialized、されていない場合はUninitialized NUM_ROWS… 統計情報で推定されたテーブルの行数 CLUST_INDEX_SIZE…

                                第189回 information_schemaのInnoDB関連テーブル[その2] | gihyo.jp
                              • SupabaseがPGroongaをサポートしました!

                                2022-12-21 SupabaseがPGroongaをサポートしました! Supabaseは、認証やデータベースなどのプロダクト開発のバックエンドのサービスを提供してくれるオープンソースのサービスです。 この度、Supabaseが提供しているPostgreSQLのデータベースサービスでPGroongaが使えるようになりました! https://supabase.com/blog/launch-week-6-community-day 今まで、PGroongaはマネージドサービスでは使用できませんでしたが、Supabaseを利用することでマネージドなPostgreSQLでも高速な全言語対応の全文検索ができるようになりました! Supabaseは、PGroonga以外にも40以上のPostgreSQL拡張機能に対応していて、一部サービスを無料で提供しています。PostgreSQLの運用が負

                                  SupabaseがPGroongaをサポートしました!
                                • MySQLのタイムアウトをPHPクライアント側でハンドリングする - Qiita

                                  本記事は、サムザップ #1 Advent Calendar 2020 - Qiita の12/23の記事です。 はじめに この記事では、PHPとMySQLに関わる様々なタイムアウト設定について確認しつつ、PHPクライアント側でタイムアウトをハンドリングする手法について記載したいと思います。 ことの発端としては、Laravel(Lumen)でバッチ処理している際に、重いクエリを投げた結果数十秒程度でMySQL server has gone awayが発生し、クエリが正常に実行できなかったことでした。 google先生に確認すると、解消方法としてwait_timeoutの設定値を伸ばす方法が散見されました。当方の環境ではデフォルト値の28800だったので該当せず、他の原因を探すことになり、この際なので、各種設定をまとめようと思いました。 検証環境 PHP : 7.3.25 mysqlnd :

                                    MySQLのタイムアウトをPHPクライアント側でハンドリングする - Qiita
                                  • 「実践ハイパフォーマンスMySQL」を読んだ - ツナワタリマイライフ

                                    はじめに 正確には全部読んでない。MySQLのパフォーマンス問題に悩まされたことがあったので買った。 実践ハイパフォーマンスMySQL 第3版 作者: Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,菊池研自,株式会社クイープ出版社/メーカー: オライリージャパン発売日: 2013/11/25メディア: 大型本この商品を含むブログ (7件) を見る 全部は読んでないが、内容の復讐に書き留めておく。 1章 MySQLのアーキテクチャと歴史 この章はその名の通り基本的なことなので読むべきだろう。 MySQLの論理的なアーキテクチャはよくみる図だ。 また、トランザクションに関して、ACID特性、ロック、分離レベルの説明もある。RDBMSを扱う上で重要な概念なので何度学んでもよい。 マルチバージョン並行性制御、MVCCについて。ストレージエンジンによって実

                                      「実践ハイパフォーマンスMySQL」を読んだ - ツナワタリマイライフ
                                    • Auth0 の Custom Database Connection の Automatic Migrations で勘違いしたこと

                                      複数のデータストアに分かれているユーザーの認証情報を、マージしてひとつに統合したいという要件があり、認証 Saas 大手の Auth0 に Automatic Migrations というそれっぽい機能があったので調査した。特に複数のユーザーデータの名寄せをどうやっているのかが知りたかった。 結論としては、名寄せは当然自動でできるはずもなく、ユーザーからのアクションや自前での実装が必要という当たり前の結果となった。とはいえ全体のフローは参考になった。 Auth0 とは Auth0: Identity is Complex. Deal with it. 認証・認可機能を提供する Saas AWS の Cognito や GCP の Firebase Authentication が恐らく競合 認証・認可はドメイン特有の知識が求められるが、多くのサービスにとって差別化できる部分ではないので、S

                                        Auth0 の Custom Database Connection の Automatic Migrations で勘違いしたこと
                                      • SQL初心者〜中級者のための練習問題&解答例1 - Qiita

                                        CREATE TABLE `students` ( `id` int(4) unsigned zerofill NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` varchar(255) NOT NULL, `gender` varchar(1) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT INTO `students` (`id`, `name`, `gender`) VALUES (0001, '長岡 一馬', '男'), (0002, '中本 知佳', '女'), (0003, '松本 義文', '男'), (0004, '佐竹 友香', '女'); CREATE TABLE `exam_results` ( `studen

                                          SQL初心者〜中級者のための練習問題&解答例1 - Qiita
                                        • MySQLがバージョン5から8に飛んだ謎、意外と知らないCharset、Collationのこと - Qiita

                                          はじめに 今回はMySQL 8.0について以下の内容を紹介します。 なぜ、バージョン5から8に一気に上がったのか Charsetとは何か Collationとは何か Youtubeでも解説しているので、ぜひ確認してみてください。 【YouTube動画】MySQL8.0 MySQLの名前の由来 MySQLは共同創設者のMichael Widenius (通称 Monty) さんの長女 Myにちなんで名付けられました。 ちなみに、MySQLをベースに、完全なGPLライセンスにしたMariaDBは、次女のMariaにちなんでいます。 [参考] Why is the Software Called MariaDB? MySQLがバージョンアップで5から8に上がった理由 MySQL 6.0はストレージエンジンにFalconを搭載したものを作っていたそうです。 しかし、Falconではなく、InnoD

                                            MySQLがバージョン5から8に飛んだ謎、意外と知らないCharset、Collationのこと - Qiita
                                          • Amazon Aurora リードレプリカの再起動に関するトラブルシューティング

                                            Amazon Aurora DB のプロダクションクラスターを実行しています。リーダーインスタンスが「リードレプリカがマスターに対して相当な遅れを取っています。MySQL を再起動しています」または「リードレプリカがマスターに対して相当な遅れを取っています。postgres を再起動しています」というエラーで再起動されました。 簡単な説明 AuroraReplicaLag は、Aurora DB クラスター内のライター Aurora DB インスタンスからリーダーインスタンスに変更をレプリケーションする際の遅延をミリ秒単位で測定したものです。Aurora レプリカは、ライターインスタンスと同じストレージボリュームに接続します。ライターインスタンスとリーダーインスタンスの間の遅延を測定するには、Amazon CloudWatch の AuroraReplicaLag メトリクスを使用します。

                                              Amazon Aurora リードレプリカの再起動に関するトラブルシューティング
                                            • WordPress テーマ有効化時に独自テーブルを追加する方法

                                              独自テーマの有効化の際に専用テーブルをデータベースに追加する必要がありましたので、先日追加したテーマ有効化時に実行されるアクションフックポイントに追加するテーブル作成用の関数を追加しました。 独自テーブル作成 以下のテーブル作成用関数を functions.php などに追加します。 /** * お気に入り用テーブル作成 */ function ag_create_table_favorites() { global $wpdb; $table = $wpdb->prefix.'ag_favorites'; //テーブルが存在していなければ作成する if ($wpdb->get_var("SHOW TABLES LIKE '$table'") != $table) { $sql = " CREATE TABLE IF NOT EXISTS `$table` ( `id` bigint(20

                                                WordPress テーマ有効化時に独自テーブルを追加する方法
                                              • MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.11.2 オンライン DDL でのパフォーマンスと並列性に関する考慮事項

                                                ロック読み取り (SELECT ... FOR UPDATE および SELECT ... LOCK IN SHARE MODE)

                                                • MySQL/Aurora/TiDBロック入門 – 第7回ギャップロックと消えるロック【解説動画付】|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

                                                  MySQL/Aurora/TiDBロック入門 – 第7回ギャップロックと消えるロック【解説動画付】 MySQL のロックについて解説する入門シリーズの第7回です。今回は挿入を止める以外に排他や共有のロックの機能もあると錯覚してしまいがちなギャップロックと INSERT に関するロック動作について解説します! ★ 第1回 トランザクション分離レベル ★ 第2回 ロックモニターの読み方 ★ 第3回 ロック読取りも SELECT は止められない ★ 第4回 INSERT を止めるインテンションロック ★ 第5回 WHERE 条件と違うロック読取り ★ 第6回 performance_schema ★ 第7回ギャップロックと消えるロック ★ 第8回 ネクストキーロックと降順インデックス ★ 第9回 共有ロックで発生しやすいデッドロック ★ 第10回 ロック読み取りが READ COMMITTED

                                                    MySQL/Aurora/TiDBロック入門 – 第7回ギャップロックと消えるロック【解説動画付】|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
                                                  • さくらVPSのOSをCentOS 8に更新、さらにRedmineを4.1に更新 - torutkのブログ

                                                    さくらVPSのOSをCentOS 8に、Redmineを4.1に更新 まとまった休みが取れたので、さくらVPSのサーバーのOSをCentOS 7から8に上げて、合わせてRedmineを3.4から4.1に上げる作業を実施しています。更新作業中はRedmineにコンテンツを挙げられないので、はてなに経過をメモすることにします。 CentOS 8への更新 さくらVPSが提供するOSインストール機能で、CentOS 8に上げます。さくらVPSサーバのバージョンはv3なので、標準OSのインストールではCentOS 8は選べません。カスタムOSのインストールでCentOS 8を入れます。 パーティションの設定 仮想ゲストでディスク(イメージファイル)を増やすこともないので、LVMは使用せず、/boot はext4、/はxfs、それとswapの3つのパーティションを作成しました。 マウントポイント 容量

                                                      さくらVPSのOSをCentOS 8に更新、さらにRedmineを4.1に更新 - torutkのブログ
                                                    • 第84回 MySQL 8.0.30がリリース、次のバージョンPostgreSQL 15をベータ版から予習しよう | gihyo.jp

                                                      OSSデータベース取り取り時報 第84回MySQL 8.0.30がリリース、次のバージョンPostgreSQL 15をベータ版から予習しよう この連載はOSSコンソーシアム データベース部会のメンバーがオープンソースデータベースの毎月の出来事をお伝えしています。 2015年9月の第1回から連載が始まり、今回で満7年間続けることができました。次号からは8年目に突入します。これからもよろしくお願いいたします。 [MySQL]2022年7月の主な出来事 2022年7月のMySQLの製品リリースは、MySQLサーバー8.0.30、5.7.39の各マイナーバージョンをはじめ、MySQL NDB Clusterや各種Connector, MySQL Shell, MySQL Workbenchなどのクライアントプログラムの商用版、およびコミュニティ版のほぼ全ての製品のマイナーバージョンアップが行われま

                                                        第84回 MySQL 8.0.30がリリース、次のバージョンPostgreSQL 15をベータ版から予習しよう | gihyo.jp
                                                      • 今更聞けないACID特性について解説 - Qiita

                                                        はじめに データベースの分野において、特にトランザクション管理に関連する基本的な概念の一つが「ACID特性」です。このブログでは、ACID特性が何であるか、その重要性、そしてそれぞれの特性について詳しく解説します。また、ACID特性を持つデータベースと持たないデータベースの例も紹介します。 ACID特性とは? ACIDとは、データベーストランザクションの信頼性と整合性を保証するための4つの特性、つまりAtomicity(原子性)、Consistency(一貫性)、Isolation(独立性)、Durability(持続性) を指します。これらの特性を満たすことで、データベースは予期しない障害が発生しても、データの整合性を保つことができます。 1. Atomicity(原子性) 原子性は、トランザクションが「全て成功する」か「全て失敗する」かのいずれかであることを保証します。トランザクション

                                                          今更聞けないACID特性について解説 - Qiita
                                                        • [速報]オラクル、Azureからも分散インメモリDBのMySQL HeatWaveを利用可能に。「MySQL HeatWave on Azure」発表。Oracle CloudWorld 2022

                                                          オラクルは米ラスベガスで開催中のイベント「Oracle CloudWorld 2022」において「MySQL HeatWave on Azure」を発表しました。 MySQL HeatWaveはMySQLに搭載されているInnoDBに加えて分散インメモリデータベースエンジンを搭載。OLTP処理はInnoDBで実行し、OLAP処理は分散インメモリデータベースエンジンで実行することにより、MySQLそのままで統合的にOLTP、OLAP、機械学習処理などを高速に実行するマネージドサービスです。 もともとOracle Cloud Infrastructure上でのみ提供されていましたが、オラクルは先月(2022年9月)、AWS上で稼働する「MySQL HeatWave on AWS」の提供を発表しました。 参考:AWS上で分散インメモリDB「MySQL HeatWave」、オラクルが提供開始。Am

                                                            [速報]オラクル、Azureからも分散インメモリDBのMySQL HeatWaveを利用可能に。「MySQL HeatWave on Azure」発表。Oracle CloudWorld 2022
                                                          • How to create a database table when activating a WordPress theme - Lab21 Web Development Studio

                                                            Recently,we came across the need of automatically creating a database table, the first time a WordPress theme is activated. Over at Lab21 we create our own themes for each project. This gives us the power of doing whatever we want, with no limitations. So for this, we have created our own WordPress “naked” theme, pre-stocked with all the functionalities we always use. Having pre-sets in our theme

                                                              How to create a database table when activating a WordPress theme - Lab21 Web Development Studio
                                                            • InnoDB におけるページとインデックスの物理的な構成について - それが僕には楽しかったんです。

                                                              この記事は「 けんつの1人 DBMS アドベントカレンダー Advent Calendar 2019 - Adventar 」 9日目の記事です。 はじめに 参考にしたサイト InnoDB のスペースファイルレイアウト ページ構成 FIL Header FIL Trailer Header, Trailer の構造的特徴 スペースファイル テーブル毎のスペース おわりに はじめに どうも、最近このアドカレが本当に終わるのかどうなのか心配になってきているけんつです。 今回は DBMS のストレージ構造を考えていたらインデックスを物理的に保存する場合の構造ってどうなってるんだろうなぁと思ったので InnoDB の内部構造とその物理的な形式を追っていく。 あんまり深く追ってしまうと本当にキリが無いので自分の理解が足りない部分をメモしていく感じになる 参考にしたサイト blog.jcole.us

                                                                InnoDB におけるページとインデックスの物理的な構成について - それが僕には楽しかったんです。
                                                              • チーム「ウー馬場ーイーツ」でISUCON10本選で一時トップに立つもfailフィニッシュになりました #isucon

                                                                最終状態がかなり不安定で3回に1回くらいfailしない感じだったのですが、もう安定化を探る時間もなく、時間配分に失敗してしまいました。 ここは司令塔として改善点。 予選じゃなくて本選だしワンチャン賭けようみたいな不慣れなことをしたのがアレだったのかな。。。 無力感ではなく力不足感が強いので、また来年強くなってリベンジしたいです。 いまのところISUCON開始から10年経っても高頻度で上位をウロチョロできているので、引き続き上位を賑やかしていきたい。 そしてワンチャン狙いたい。 ここ2年で「基本的な方法論は引き続き通用するな」というのを確認できたのは収穫です。 今回はfailだったけど、コード読み書きやプロダクト習熟、体調管理みたいな基礎力を上げればスコア的には2~3位が狙える位置にいけそうです。 envoy初めて、WebPush初めて、gRPC初めて、にしてはうまく回せたと思います。 途中

                                                                • PostgreSQLでのトランザクション分離レベルの使い分けを考えた - やる気がストロングZERO

                                                                  標準としてのトランザクション分離レベルは一応把握してたけど、MySQLやPostgreSQLとか、実装によって結構事情が異なっててそのあたりあまり理解できてなかったのでPostgreSQLにおいてのトランザクション分離レベルを学び直した。 ※参考にしたのはこのあたり postgeSQLのトランザクション分離レベルについて www.postgresql.jp www.postgresqlinternals.org トランザクションで発生する問題(ダーティーリードやファントムリードの具体的なサンプルなど) postd.cc 結論「どういう時にどうすればいいか?」 「基本的にはデフォルト(read committed)指定で良い」について 「不整合が起こる可能性がある場合にrepeatable readを明示的に指定する」について 「repeatable readを明示的に指定する場合、クエリ実

                                                                    PostgreSQLでのトランザクション分離レベルの使い分けを考えた - やる気がストロングZERO
                                                                  • strapiのメジャーバージョンアップをやってみた - アドグローブブログ | 渋谷のIT会社

                                                                    みなさんこんにちは。 ソリューション事業部の大藪と申します。 この度、strapiのメジャーバージョンを3から4へのバージョンアップを実施しましたので、その時の対応について記事を書かせていただきました。これからバージョンアップを検討している方に参考にしていただけますと幸いです。 strapiとは? バージョンアップでどのように変わる? 移行の為にどんなことをした? 実際やってみて躓いた点 まとめ 参照サイト strapiとは? ・strapiとは? Strapi - Open source Node.js Headless CMS 🚀 strapiとはオープンソースで提供されている、Node.jsベースの代表的なヘッドレス CMSです。Strapiは100%JavaScriptベースであり、完全なカスタマイズが可能です。APIも素早く設計することができ、開発者ファーストのCMSとして高い

                                                                      strapiのメジャーバージョンアップをやってみた - アドグローブブログ | 渋谷のIT会社
                                                                    • 大きなテーブルのスキーマ変更を RDS Blue/Greenデプロイでダウンタイムなく実行 & マイグレーションとも辻褄を合わせる

                                                                      はじめに 今回大きなテーブルのスキーマ変更のためにマイグレーションを実行したかったのですが、通常のデプロイフローでは対応できず試行錯誤しました。 最終的に、RDS Blue/Greenデプロイを活用しGreen環境でALTER TABLEすることでほぼダウンタイムなく対応できました。Railsのマイグレーションファイルの偽装方法も含め、道のりを記載します。 テーブルは2つあり、それぞれ 約2.5億レコードと約4000万レコード です。 show table status; +------------------------------+--------+---------+------------+-----------+ | Name | Engine | Version | Row_format | Rows | +------------------------------+----

                                                                        大きなテーブルのスキーマ変更を RDS Blue/Greenデプロイでダウンタイムなく実行 & マイグレーションとも辻褄を合わせる
                                                                      • 第208回 MySQL複数値indexの制限に関しての補足 | gihyo.jp

                                                                        MySQLのJSONの活用方法に関して説明をしてきましたが、第205回 MySQLでJSONを活用してみる[その4]でMySQL 8.0.17から導入された複数値indexを活用してもっと便利に扱う方法を紹介しました。 今回は、複数値indexを実際に運用する際に注意しなければならない点を紹介していきたいと思います。 検証環境 今回は、Dockerで建てたMySQLを使用します。以下のコマンドでDockerを建ててローカルからアクセスをします。 % docker run --platform linux/x86_64 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest アクセス方法は以下の通りになります。 % mysql -uroot -pmy-secret-pw -h127.0.0.1 -P3307 執筆時点で

                                                                          第208回 MySQL複数値indexの制限に関しての補足 | gihyo.jp
                                                                        • 第132回 Internal Temporary Table(内部テンポラリテーブル)について[その2] | gihyo.jp

                                                                          第129回 Internal Temporary Table(内部テンポラリテーブル)について[その1] では内部テンポラリーテーブルを使用するステートメントやその確認方法、またMySQLの各バージョンでの内部テンポラリテーブルの違いについて紹介しました。 今回はその続きで、主にMySQL 8.0で追加された内部テンポラリテーブル用のストレージエンジン、TempTableストレージエンジンについて紹介したいと思います。 今回も前回同様MySQL 8.0.21を基にして紹介します。 TempTableストレージエンジン MySQL 8.0は、デフォルトでインメモリテンポラリテーブルとディスクテンポラリテーブルがTempTableとなっています。 TempTableストレージエンジンの特徴として以下があります。 可変長データ型の効率的なストレージの提供 バイナリラージオブジェクト型のサポート

                                                                            第132回 Internal Temporary Table(内部テンポラリテーブル)について[その2] | gihyo.jp
                                                                          • MySQL で一意制約が削除できない

                                                                            基本: 外部キーに使われているインデックスは削除出来ない MySQL でインデックスを削除するときに、以下のようなエラーメッセージが出る事があります。 普通に読めば、そのインデックスが外部キーによって使用されているので削除出来ない、という話です。解決方法としては インデックスはそのまま残す外部キーを削除してからインデックスを削除する といったところだと思います。 ここまでは当たり前の話なのですが、なぜこう言う状態になるのか分かりにくいケースがあったので、説明します。 分かりにくいケース 実例: 後から一意制約を追加した場合 以下の通りテーブルを2つ作成します。 CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

                                                                              MySQL で一意制約が削除できない
                                                                            • MySQL闇歴史2 Embedded InnoDB | キムラデービーブログ

                                                                              MySQL闇歴史2 Embedded InnoDB 本エントリはMySQL闇歴史 Advent Calendar 2022 の2枚目のカレンダー9日目のエントリーです。 梶山さんが以下のエントリで触れているようにInnoDBには組み込みInnoDB(Embedded InnoDB)というものが一瞬ありました。 MySQL闇歴史 Innobase Oy ニュースにもなりましたし、Web Archiveをたぐってみるとバージョン1.0.6までリリースされました。 が、しかし、継続はされず、こっそりとフェードアウトしました。 何が悪かったかというと、やはり「組み込み(Embedded)」という名前で多くの人が想像するものと、 実際にリリースされたものに大きな乖離があったからではないかと類推します。 通常組み込みというと、以下のような三つのプロファイルがあり、用途に応じて構成変更して利用するのが一

                                                                                MySQL闇歴史2 Embedded InnoDB | キムラデービーブログ
                                                                              • isucon10.md

                                                                                isucon10.md 再起動試験で落ちていた件の調査 - NaruseJun 理由 apparmorのポリシー(mysql-serverパッケージに入ってる/etc/apparmor.d/usr.sbin.mysqld)が生きていて、systemdがmariadbの起動を検知できておらず、systemctl stop相当の処理がかかったため。 疑問1: mariadbに入れ替えたときにto-hutohuがaa-remove-unknownでポリシーを消したのでは? これはそもそも恒久対応ではなかった。 /etc/apparmor.d/usr.sbin.mysqldはmariadbインストール時に空になっている。 が、リブート時にはmysql-serverパッケージ由来のapparmorポリシーが適用されているという経験があった Ubuntuでmysql-serverをmariadb-se

                                                                                  isucon10.md
                                                                                • B Tree Index を実装する - それが僕には楽しかったんです。

                                                                                  この記事は「けんつの1人 DBMS アドベントカレンダー Advent Calendar 2019 - Adventar」 15 日目の記事です。 はじめに B Tree を実装する インデックスの色々 クラスタインデックス セカンダリインデックス B Tree アルゴリズム 実装方針 実装するにあたっての知見・感想 アイテムの閾値 ラッチの実装 Golang の interface を上手く使う B Tree の実装 終わりに はじめに どうも、最近眼精疲労がひどすぎるけど眼球ってどうやって休めたらいいかわからないけんつです。 今日明日は現状最も苦戦した B Tree Index と Buffer Pool の実装話になります。 B Tree を実装する 今回は B+ Tree でなく B Tree を実装する。また削除は考慮しない。 完全に考慮しない訳ではなくて一応削除を実装することを

                                                                                    B Tree Index を実装する - それが僕には楽しかったんです。