並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 1529件

新着順 人気順

innodbの検索結果241 - 280 件 / 1529件

  • 第165回 MySQLの圧縮いろいろ | gihyo.jp

    MySQLを運用していると、さまざまなファイルやテーブルが予想していたよりも大きくなり、ストレージ容量を逼迫する問題が起こることがあります。また、クエリの結果セットが大きいためにネットワーク帯域が逼迫され、問題になることもあると思います。これらの問題はスケールアップ、データベースシャーディング、または圧縮機能などを使って解決できます。 今回はその中から、MySQLが提供しているさまざまな圧縮機能についてまとめて紹介します。MySQLではデータ、テーブル、バイナリログやデータ転送に圧縮機能を提供しています。 関数によるデータ圧縮 はじめに、関数によるデータを圧縮する方法を紹介します。 データ圧縮を行うのはCOMPRESS関数です。指定した文字列をzlibで圧縮して、その結果をバイナリ文字列として返します。展開するにはUNCOMPRESS関数を使用します。 文字コードの変換など発生を防ぐために

      第165回 MySQLの圧縮いろいろ | gihyo.jp
    • DBスキーマからGoのstruct定義を生成するグッズを書いた - 私が歌川です

      GoでSQLを書いて実行するとき、素のdatabase/sqlだけだとさすがに心もとないのでsqlxなどのライブラリを使ってDBの行をstructにマッピングすると思います。db struct tagでマッピング元のカラム名を指定できるのが便利ですね。 一方で、このstructを定義する作業ですが、テーブルのカラムが多いと大変だし、typoしていたので直して再チャレンジする……ということが往々にしてあると思います。 こういうときのためにstruct定義を生成するツールを書いてみました。 go install github.com/utgwkk/rowstructgen@latest を実行したら使えるようになると思います。今のところMySQLにしか対応していません (普段はMySQLしか使っていないため)。main.goに全ての実装が書いてあってひどい感じなので、気が向いたらなおします。

        DBスキーマからGoのstruct定義を生成するグッズを書いた - 私が歌川です
      • MySQL 各インデックスごとの容量を確認する - mita2 database life

        お題 不要そうなインデックスを削除して、どれぐらい容量が減るのか確認したい information_schema.tables の INDEX_LENGTH では合計容量しか見えない mysql> SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH, INDEX_LENGTH FROM information_schema.tables WHERE TABLE_NAME = 'sbtest1' \G *************************** 1. row *************************** TABLE_NAME< TABLE_ROWS: 1 DATA_LENGTH: 225132544 INDEX_LENGTH: 85295104 1 row in set, 1 warning (0.00 sec) 複数のインデックスの合

          MySQL 各インデックスごとの容量を確認する - mita2 database life
        • Aurora Serverless v2 にて RDS Proxy が対応していたので触ってみた | DevelopersIO

          こんにちは、大前です。 先日、 Aurora Serverless v2 が晴れて GA となりました。 ドキュメントを眺めていたところ、Aurora Serverless v2 では、v1 で非対応だった RDS Proxy に対応しているらしいため、触ってみたいと思います。 You can use RDS Proxy with Aurora Serverless v2 clusters but not with Aurora Serverless v1 clusters. 引用 : Quotas and limitations for RDS Proxy - Amazon Aurora やってみた 以下の流れで進めます。細かい手順は省いているところもありますのでご了承ください。 Aurora Serverless v2 クラスターの作成 Secrets Manager にてシークレット

            Aurora Serverless v2 にて RDS Proxy が対応していたので触ってみた | DevelopersIO
          • ISUCON11本選でチーム ウー馬場ーイー2 として参加し、7位になりました - Gマイナー志向

            TL;DR 運営の皆様、参加者の皆様、本当にありがとうございました。ISUCONと嫁は私の生きがいです。 優勝までは届きませんでしたが、Failで終わったISUCON10本選から少し人権を取り戻した気がします。 スコアについて 本選時間中のベストスコアは80,473、再計測による最終スコアは83,756、7位でした。 本来は12位ぐらいので実力でしたがFailとなったチームがいたので運良く10位以内に入れたようです。 今回、途中で急激なスコアの伸びたことが理由でTVer賞をいただいたのですが、スコアが伸びたのは開始から3時間44分後の1台構成から2台構成に切り替えたタイミングでした。最初しばらくは1台構成で進めて、煮詰まったら複数台構成としているので、予め複数台構成にするよりも大きく伸びやすいというのがあると思います。そのようなスコア評価があることは事前に知らなかったのでラッキーでしたね。

              ISUCON11本選でチーム ウー馬場ーイー2 として参加し、7位になりました - Gマイナー志向
            • MySQLのN-gramを使った全文検索について調べてみました | Simple is Beautiful.

              今回MySQL5.7.22を用いて検証しています。 初期設定 データベース作成 mysql> CREATE DATABASE fts; Query OK, 1 row affected (0.00 sec) mysql> use fts; Database changed テーブル作成 テーブル作成時に全文検索をするカラムの型をFULLTEXTにし、パーサーにngramを指定します。 mysql> CREATE TABLE documents (id SERIAL PRIMARY KEY, content VARCHAR(255), FULLTEXT(content) WITH PARSER ngram) CHARACTER SET utf8; Query OK, 0 rows affected (0.10 sec) レコード挿入 レコードの挿入は通常の文字列同様に入れられます。 mysq

                MySQLのN-gramを使った全文検索について調べてみました | Simple is Beautiful.
              • [論文まとめ] 「NewSQL」 の 「New」 の部分は一体何ですか - Qiita

                この記事は DMM advent calendar 2020 8日目の記事です。 NewSQL という言葉を聞いたことがある方がいらっしゃるでしょうか。「NewSQL」 の 「NEW」 の部分は一体何ですか等の疑問がありませんか? 筆者は最近 TiDB を勉強する時に、上記の疑問がよく頭に浮かび上がるので、調べてみました。そして、「What’s Really New with NewSQL?」 という論文を見つけた。 作者の Andrew Pavlo と Matthew Aslett は両方ともコンピュータサイエンスの専門家なので、この文章は非常に参考になれると思うため、概要をまとめました。自分は英語力が弱いので間違えたことろがあるかもしれませんが、深い興味があればリンクのPDFを読んでもいいと思う。 1. A Brief History of DBMSS 世界初のデータベース: IBM

                  [論文まとめ] 「NewSQL」 の 「New」 の部分は一体何ですか - Qiita
                • 最新ハードウェアを活用するMySQLストレージエンジンの共同研究

                  ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog 現在、ヤフーではLINEと協働して、最新ハードウェアを有効活用する独自のMySQLストレージエンジンの研究開発を行っています。まずは共同研究開発の動機となる「Unleash the Power of Data:データの力を解放する」のコンセプトについて説明します。 データが人々の活動を支えると同時に、人々の活動も有益なデータを生み出します。人々の知る、買う、つながる、楽しむといった活動はデータによって支えられています。 例えば、インターネットで物を買う場合、商品情報はデータベースにデータとして保存されます。インターネットで音楽を楽しむ場合に、音楽のデータもデータベースに保存されます。ヤフーとLINEでも、インターネットにおける人々

                    最新ハードウェアを活用するMySQLストレージエンジンの共同研究
                  • ISUCON10 感想戦で 100,000 超えスコアを出した - Hateburo: kazeburo hatenablog

                    感想戦優勝なんてものはない 感想戦優勝 #isucon— 紅葉坂乗り過ごして桜木町 (@kazeburo) 2020年10月12日 ISUCON10本選は悔しいところではありましたが、Fail(失格)で終わってしまいましたが、1週間もの長い間サーバとベンチマーカーが使えるようにして頂いていたので、感想戦にチャレンジし、24x7 ベンチマークを回し、最終的には100,000超え(本選時の弊チームベスト 32,312、優勝者スコア 49,545)のスコアを出すことに成功しましたので、その方法です。 レポジトリはこちらにあります。 github.com この記事を読み進める前に当日のマニュアルを確認するとよいでしょう github.com 最終スコア 101,249 がベストで最後のスコアです。 この際のTeamCapacityは100です 15:07:32.437656 ===> PREPAR

                      ISUCON10 感想戦で 100,000 超えスコアを出した - Hateburo: kazeburo hatenablog
                    • Tuning MySQL/InnoDB Flushing for a Write-Intensive Workload

                      All of Percona’s open-source software products, in one place, to download as much or as little as you need.

                        Tuning MySQL/InnoDB Flushing for a Write-Intensive Workload
                      • Binary logging optimizations in Amazon Aurora MySQL version 3 | Amazon Web Services

                        AWS Database Blog Binary logging optimizations in Amazon Aurora MySQL version 3 The binary log (binlog) in MySQL is used to capture database modifications on a MySQL server in a logical format known as “events”. These database modifications can include DCL statements (such as CREATE USER or GRANT), DDL statements (CREATE TABLE, ALTER TABLE) and DML statements (INSERT, UPDATE, DELETE). When such a

                          Binary logging optimizations in Amazon Aurora MySQL version 3 | Amazon Web Services
                        • 【RailsサービスのMySQL5.7 -> 8移行: 前編】MySQLのcollation周りの話 - hacomono TECH BLOG

                          この記事は、hacomono Advent Calender 2023の20日目の記事です。 はじめに こんにちは、プラットフォームチーム所属のまこたすです。 この記事は主にMySQL5.7,MySQL8.0のcollation周りの挙動の違いについて書いています。AWS RDS MySQL5.7がEOLを迎える今、一番話したい内容はRails x MySQL5.7環境からRails x MySQL8.0環境へ移行する際にハマった話とそこからみる気をつけるべき観点という話題ではあるのですが、前提の話が長いので記事を2つに分けてお伝えします。今回はRailsの話は触れず、MySQLのcollation周りの話のみをします。 この記事で書くこと MySQL5.7, MySQL8.0でのサーバー, データベース, テーブルのcollationの決まり方とSHOW CREATE (TABLE|DA

                            【RailsサービスのMySQL5.7 -> 8移行: 前編】MySQLのcollation周りの話 - hacomono TECH BLOG
                          • MySQL でグループごとの最大値を持つレコードを取得する - Qiita

                            CREATE TABLE IF NOT EXISTS `purchase_header` ( `purchase_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `customer_id` int(10) unsigned NOT NULL, `amount` int(10) unsigned NOT NULL, `datetime` datetime NOT NULL, PRIMARY KEY (`purchase_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ; INSERT INTO `purchase_header` (`customer_id`, `amount`, `datetime`) VALUES (101, 100, '2000-01-01 00:00:00'); INSERT INTO `

                              MySQL でグループごとの最大値を持つレコードを取得する - Qiita
                            • Amazon RDS for MySQL バージョン 5.6 のサポート終了のお知らせ | Amazon Web Services

                              Amazon Web Services ブログ Amazon RDS for MySQL バージョン 5.6 のサポート終了のお知らせ この投稿は、AWS フォーラムでご案内しているアナウンスメントの参考和訳です。 注記: 以下の内容は、Amazon Aurora クラスターには適用されません。 Amazon RDS は、MySQL メジャーバージョン 5.6 の廃止プロセスを開始します。これは、MySQL コミュニティが 2021 年 2 月 5 日に MySQL 5.6 のサポートを終了することを計画している為です。 Amazon RDS for MySQL 5.6 は、UTC 協定世界時間の2021 年 8 月 3 日 00:00:01 (JST 日本標準時間の2021 年 8 月 3 日 09:00:01) で廃止されます。コミュニティでの MySQL 5.6 の廃止 (2021

                                Amazon RDS for MySQL バージョン 5.6 のサポート終了のお知らせ | Amazon Web Services
                              • 第138回 オンラインスキーママイグレーションツール gh-ostを使ってみよう[その1] | gihyo.jp

                                今回から3回に渡って、GitHub社がOSSとして公開しているオンラインスキーママイグレーションツール gh-ostについて紹介したいと思います。 はじめに、MySQLのオンラインスキーママイグレーションというとMySQL 5.6からオンラインDDLがあります。これにより、並列でDMLが実行されてもロックすることなくスキーマ変更が可能です。特に、MySQL 8.0からのInstance Add Columnは、テーブルをリビルドすることなく即時でカラム追加が完了するといううれしい機能です。 しかし、int型からbigint型へなどの型変更を伴うALTERステートメントなど、いくつかの操作は並列のDMLが許可されない、つまりそのテーブルが全体ロックされるような動作になります。加えて、レプリケーションの遅延が発生する可能性もあります。このように、操作の種類によってAlter中にできる動作が異な

                                  第138回 オンラインスキーママイグレーションツール gh-ostを使ってみよう[その1] | gihyo.jp
                                • MySQL の Online DDL の挙動をローカルで検証して理解する

                                  MySQL の Online DDL について検証しつつ備忘録としてまとめておきます。 (本記事の検証は、MySQL 5.7.40 で実施しています。) mysql> select version(); +-----------+ | version() | +-----------+ | 5.7.40 | +-----------+ 1 row in set (0.02 sec) Online DDLとは MySQL 5.7 Reference Manual - 14.13 InnoDB and Online DDL Online DDL の機能によって、インデックスの作成などの DDL を実行している最中に INSERT , UPDATEなどの DML が実行できるようになっています。 MySQL 5.5 以前での ALTER TABLE は下記のような制限があったようです。 ALTE

                                    MySQL の Online DDL の挙動をローカルで検証して理解する
                                  • 階層構造(a.k.a ツリー構造・ディレクトリ構造・フォルダ)をDBでどう設計すべきか - @teitei_tk Blog

                                    SQLアンチパターン第2章を自分なりに噛み砕く。 階層構造とは いわゆるTree Strcture(木構造)。 例として上げるのであれば、 Reditのコメント ファイラ(フォルダ・ディレクトリ) . WindowsのExplorer . MacのFinder。 Shell ブログのカテゴリ DOM Tree ここではフォルダを想定する。 隣接リスト(Adjacency List) Tree-Structure/adjacency_list at main · teitei-tk/Tree-Structure · GitHub 単純に考えると、各フォルダに親のフォルダを参照させるやり方が想定される。 しかし、このままだとフォルダ構成が深い場合、単一のSQLで取得することが難しい。実際に見てみる。 フォルダ構成は下記 table CREATE TABLE IF NOT EXISTS `adj

                                      階層構造(a.k.a ツリー構造・ディレクトリ構造・フォルダ)をDBでどう設計すべきか - @teitei_tk Blog
                                    • 実録!SQL アンチパターン - Qiita

                                      はじめに 『SQL アンチパターン』には,リレーショナル・データベースの設計・運用にあたってのよくある失敗例が25個紹介されている.本記事では,5ヶ月間の開発経験の中で,自分が実際に遭遇した事例のうち,3つを紹介する.コード例は,実際の事例を単純化して作成したものである. 環境は以下を想定する. フレームワーク: Ruby on Rails 6.0 データベース: MySQL 8.0 12章 インデックスショットガン(闇雲インデックス) エンジニアのインターンを始めてはや2ヶ月が過ぎようとしていた頃,ボスから与えられた指令は,「お前,ちょっとインデックス見てこい」というものだった.これまで複合インデックスの効果的な使用を十分に意識できていなかったからその辺りを重点的に見てほしいとのことだった.MENTOR の原則の出番である. MENTOR の原則 MENTOR の原則は,データベースのイ

                                        実録!SQL アンチパターン - Qiita
                                      • InnoDB redo logを解読している話 - tom__bo’s Blog

                                        この記事はMySQLのカレンダー | Advent Calendar 2023 - Qiitaの19日目の記事です。 MySQLのredoログには何が書かれているのだろうか? そんな疑問を解決するために私はアマゾンの奥地へと旅立つことにしました。 MySQLはSQLをパースし、実行計画を立てたあと、実際にストレージ(メモリ含む)でデータを処理する部分はプラガブルなストレージエンジンに実装を移譲する設計になっています。 しかし、処理をストレージエンジンがトランザクションをサポートしないことも選択できるため、クラッシュリカバリのための機構を実装していない可能性もあります。 そのため、レプリケーションにも利用されるバイナリログがWrite Ahead Loggingされていて、クラッシュリカバリやPITRにもバイナリログが主に使われています。(と、筆者は理解しています。). なので、運用上はバイ

                                          InnoDB redo logを解読している話 - tom__bo’s Blog
                                        • TypeORM|Entityからmigrationを作成(型指定, リレーション定義) - わくわくBank

                                          TypeORMのmigration利用方法について取り上げます。まず、Entityからmigrationを生成して、migrationを実行する一連の流れ確認をします。その後、「型指定の方法」「リレーション定義の方法」を確認します。 migration作成 & 実行の流れ Entityを作成 ( typeorm entity:create ) $ npx typeorm entity:create --name Test Entity /typeorm_sample/src/entity/Test.ts has been created successfully. 以下Entityが作成されました。 $ cat src/entity/Test.ts import {Entity} from "typeorm"; @Entity() export class Test { } Entityを

                                            TypeORM|Entityからmigrationを作成(型指定, リレーション定義) - わくわくBank
                                          • Debugging MySQL/MariaDB (1): Build and Test - nayuta-yanagisawa's blog

                                            MySQL/MariaDB をデバッグする実践的方法を解説する。この記事ではデバッグを行うための準備を行い、具体的なデバッグの方法については (2) 以降の記事で説明する予定である。なお、一連の記事すべてにおいて MySQL 8.0.24 および MariaDB 10.5.9 を前提として解説する。 Building MySQL/MariaDB MySQL/MariaDB のそれぞれについて、ビルドする方法を簡単にまとめておく。以下の記述は筆者の開発環境 (Vagrant Box bento/ubuntu-20.04) を前提としたものである。 MySQL Boost 同梱版のソースを公式からダウンロードし展開する。GitHub から取得すると Boost のバージョンを合わせるのがかなり面倒なので、Boost 同梱版を使うのが吉である。 wget https://dev.mysql.co

                                              Debugging MySQL/MariaDB (1): Build and Test - nayuta-yanagisawa's blog
                                            • Amazon Aurora Serverless V2のスケーリング能力を試してみる | TECH | NRI Digital

                                              こんにちは、NRIデジタルの島です。 AWSクラウドをベースにシステムを構築する際、データベースの一つの選択肢として「Amazon Aurora(以下Aurora)」があります。AuroraはWeb系、バッチ系問わずあらゆるシステムのユースケースに汎用的に利用できるマネージドなRDBMSサービスです。これまでオンプレミス上で稼働させていたMySQL等のRDBMSと同じように利用できる為、オンプレミスからクラウドへのデータベース移行もスムーズに行えます。 そのAuroraについて、先日ついに「Amazon Aurora Serverless V2(以下 Serverless V2)」がGAされました。 Amazon Aurora Serverless v2 is generally available Serverless V2は、後述する「Amazon Aurora Serverless

                                                Amazon Aurora Serverless V2のスケーリング能力を試してみる | TECH | NRI Digital
                                              • Docker for Mac遅すぎる問題の解決 - ITANDI Engineer Blog

                                                こんにちは、イタンジの福崎です。 Docker for Macですがプロジェクトが大きくなるのに比例して重くなっていき、我慢できなくなりました。 docker syncを試したりもしたんですが安定しないので、もうMacからLinuxに変更しようかと思ったりもしましたがVagrant使うことで解決しました。 以下はその内容の共有です。 やりたいこと MacにVagrant入れる MacとVagrant間でフォルダを共有 コーディングは今まで通りMacで行い、Dockerの実行はVagrantで行う 環境構築手順 Virtual Boxのインストール Downloads – Oracle VM VirtualBox Vagrantのインストール Download - Vagrant by HashiCorp 適当なところにvagrantフォルダを作成してinit $ mkdir vagrant

                                                  Docker for Mac遅すぎる問題の解決 - ITANDI Engineer Blog
                                                • 第168回 MyDumperを使ってみよう[その1] | gihyo.jp

                                                  MySQLの論理バックアップツールというと、mysqldumpは皆さんご存知のことでしょう。mysqldumpはシリアルで処理されるため、大きなデータベースのバックアップとリストアには大変時間がかかりました。 その後mysqlpumpが登場し、これによりバックアップはパラレルで処理するため高速化されましたが、リストアはmysqldumpと同様シリアルで処理されるため、これもまた時間がかかりました。 mysqldumpとmysqlpumpについては以下記事をご参照ください。 第15回 mysqldumpを使ってバックアップする 第153回 mysqlpumpを使ってバックアップを取ってみる MyDumperはバックアップとリストアをパラレルで処理するため、mysqldumpやmysqlpumpよりも高速です。 ただし、最近ではMySQL ShellにMySQL Shellダンプユーティリティ

                                                    第168回 MyDumperを使ってみよう[その1] | gihyo.jp
                                                  • MariaDB vs MySQL: 徹底比較

                                                    MySQL と MariaDB:5つの重要な違い MySQLはMariaDBよりもはるかに古いDBです。MariaDBはMySQLプロジェクトで比較的最近の派生したものです。 MySQLは GPLまたはプロプライエタリ・ライセンスで利用できます。MariaDBは完全にGPLです。 MySQLはOracleが所有し、配布しています。MariaDBは完全にオープンソースです。 MySQLは他のシステムから独立しています。MariaDBは、MySQLの現在のバージョンをトラックし、ミラーリングします。 MariaDBはMySQLより高速であることが多いです。 MariaDBとMySQLは同一プロジェクトの派生ですが、同じというわけではありません。 このガイドでは、MySQL と MariaDB の違いについて学び、どちらの方がニーズに適しているかを知ることができます。 目次 MariaDB vs

                                                      MariaDB vs MySQL: 徹底比較
                                                    • SELECT ... FOR UPDATEとUPDATEでデッドロックが出る人へ - 41から始めました

                                                      はじめに 最近は主に花粉症に悩まされており、目が痒くてたまりません。 また、娘の生活がガラッと変わったせいで、毎日貧乏ヒマ無しです。 そんな中、たまたま早起きできたので奮起して久々に書いてみました。 問題が起きる環境 MySQL8.0.17以前 transaction_isolationがREAD-COMMITTED WHERE句の条件が一意ではない。(フルテーブルスキャンだと発生しやすくなる) キーの値がたすきがけになってる トランザクション開始+SELECT ...FOR UPDATE→UPDATEのようにロックを取っている 先に実行されたトランザクションが、たすきがけになっているキー値の若い(っていうのかな?)方のロックを取る 何が起きるかと言うと、SELECT ...FOR UPDATEのWHERE句で抽出した行に対してロックを取ってるのに、 後から別セッションで実行されたSELE

                                                        SELECT ... FOR UPDATEとUPDATEでデッドロックが出る人へ - 41から始めました
                                                      • "innodb_flush_log_at_trx_commit" について - 元RX-7乗りの適当な日々

                                                        ※ このエントリは、はてなグループ終了に伴う、サブブログからの引越エントリ(2011/02)です。 ※ 情報が古い可能性もありますので、ご留意ください。 設定値 ログバッファ→ログファイル ディスクフラッシュ ====================================================================== 0 毎秒 毎秒 1 (初期値) COMMIT時 COMMIT時 2 COMMIT時 毎秒 innodb_flush_log_at_trx_commit が0に設定された時は、ログ バッファは1秒に一回ログ ファイルに書き込まれ、ディスク操作へのフラッシュはログ ファイル上で行われますが、トランザクション コミットの際には何も行われません。この値が1(デフォルト)の時は、ログ ファイルは各トランザクション コミットの時にログ ファイルに書き込まれ

                                                          "innodb_flush_log_at_trx_commit" について - 元RX-7乗りの適当な日々
                                                        • MySQL5.xではデッドロックだけど8.0では死なないよ - 41から始めました

                                                          はじめに タイトル通り、MySQL5.x系だとデッドロックになるんだけど、 MySQL8.0だとロック機構が変わってデッドロックにならないよ という組み合わせのお話。 僕はこの話をどっかで見た記憶が無かった(忘れた?)ので 教えてもらったとき結構驚いたんだけど、GA(8.0.11)では 既にこれがあったんで、まあ古い話なんだと思うし、 何をイマサラなのかもしれないので、ご存じの方は笑ってやってください。 ちなみに、REPEATABLE READでのお話なので、 READ COMMITTEDの場合は5系でもデッドロックにはなりまへん。 検証 今回やるのはこういうこと 最初のトランザクション(以下Tx1)でトランザクション開始、共有(S)ロックで全レコードを参照。 別のトランザクション(以下Tx2)でトランザクション開始、INSERTによる排他(X)ロック Tx1でINSERTによる排他(X)

                                                            MySQL5.xではデッドロックだけど8.0では死なないよ - 41から始めました
                                                          • Amazon Aurora のストレージに関連するメトリクスを理解する - サーバーワークスエンジニアブログ

                                                            CI部 佐竹です。 本日は Aurora のストレージについて、特に運用目線で知っておく必要がある CloudWatch メトリクスを解説します。 はじめに Aurora のストレージの種類について ローカルストレージ クラスターボリューム CloudWatch メトリクス FreeLocalStorage VolumeBytesUsed AuroraVolumeBytesLeftTotal まとめ はじめに Amazon RDS、Amazon Aurora におけるコンピュートリソースの利用状況は、特に何も設定をしなくとも CloudWatch に連携されており、メトリクスとして表示が可能です。例えば CPUUtilization などもその1つです。 今回は、その中でも特に運用上確認しておくことが重要なストレージに関するメトリクスについて解説を行います。 Aurora のストレージの種

                                                              Amazon Aurora のストレージに関連するメトリクスを理解する - サーバーワークスエンジニアブログ
                                                            • MySQL 8.0 におけるJSON型のpartial update、およびそれに対するInnoDBの最適化について | GREE Engineering

                                                              HOMEInfoMySQL 8.0 におけるJSON型のpartial update、およびそれに対するInnoDBの最適化について こんにちわ。せじまです。 InnoDB に関する話をします。今回は大半が MySQL Server Blog や WorkLog のまとめ記事ですので、ゆるふわと言っていいでしょう。 JSON型の partial update に対する最適化というと、 binlog や replication にも関連するのですが、それについては今回は触れません。 はじめに 今回の内容は、MySQL Server Blog を熟読されている方であれば、すでにご存知のことが多いでしょう。ただ、「結局のところ、JSON型の partial update は、 InnoDB Adaptive Flushing においても有効なのか?」というところが疑問に残った方もいらっしゃるかも

                                                                MySQL 8.0 におけるJSON型のpartial update、およびそれに対するInnoDBの最適化について | GREE Engineering
                                                              • MySQL :: MySQL 8.0 Reference Manual :: 17.12.1 Online DDL Operations

                                                                Enabling Automatic Configuration for a Dedicated MySQL Server

                                                                • Efficient MySQL Performance を読んだ

                                                                  とても良い本だった。 MySQL の初級・上級の本は既刊であるが、その間を埋めるものがないので書かれたというもので、難易度を 1 ~ 5 で表すと 4 くらい、難易度 5 は 実践ハイパフォーマンスMySQL とのことだった。 あくまで深堀りしたいアプリケーションエンジニア向けの本で、DBA 向けではないと明記されていた。実際 MySQL (InnoDB) の実装詳細の説明が適度に打ち切られていて、ただし必要十分なトピックはカバーされていて、学習効率が良い。 筆者は Hack MySQL を運営していたり、過去に Percona で数々のツールを作ってきた実績 もあり、信頼が置ける。 1. Query Response Time まず North Star Metrics としてクエリのレスポンスタイムを定義し、その改善に必要な項目を体系立てて説明している。この構成がかなり良くて、明確な指

                                                                    Efficient MySQL Performance を読んだ
                                                                  • MySQL 8.0 の InnoDB の log_sys周り の話

                                                                    思い出せるうちに思い出せる範囲で… 例によって世に出る頃には全く違うことに取り組んでいるので、忙しくしてると何も書かずに終わってしまうのですが、こんなご時世、年末年始休暇があっても何も用事がなく折角なのですこし書き残します。本来は本家開発者のブログで英語で書くべきなんですが、込み入った話を英語で書く労力をかけるくらいなら次の問題解決にかけたほうがいいので、とりあえず日本語で書き残します… 私がMySQL界を離れている間にリリースされた8.0になってlog_sysのデザインが新しくなり、スケールが良くなったのですが、既存のハードを利用する大半のユーザーには、未だ荒かった実装のせいでデメリットの方が大きかったと思います。2019末くらいには悪い挙動と原因はある程度分かっていましたが、修正リリースは2020後半になってしまいました。 既存のスペックのハードウェアと、CPUコア多数搭載の最新ハード

                                                                    • 第112回 知っておくと便利になるかもしれない小技 | gihyo.jp

                                                                      今回はMySQLを利用するうえで、知っていると便利になるかもしれないちょっとした小技をいくつか紹介しようと思います。なお、利用するMySQLのバージョンは8.0.18、OSはCentOS 7を利用しています。 STRAIGHT_JOINの位置 第97回 JOIN_ORDERを使ってJOINの順番を決めるにて、バージョン8.0以降ではJOIN_ORDERヒント句を用いてJOINの順番を決めるやり方と、バージョン5.7とそれ以前ではINNER JOINに限り、STRAIGHT_JOINを用いて駆動表を選択することができることを紹介しました。 みなさんはこのSTRAIGHT_JOINを記述するやり方が複数あるのはご存知でしょうか? 1つ目の記述は、INNER JOINの記述をSTRAIGHT_JOINに書き直すやり方です。たとえば、第97回で利用した下記クエリを参考にしてみましょう。 mysql

                                                                        第112回 知っておくと便利になるかもしれない小技 | gihyo.jp
                                                                      • SQLを使って位置情報から距離計算をする - LIVESENSE ENGINEER BLOG

                                                                        はじめに マッハバイトでバックエンドを担当している @ayumu838 です。 今回は前回のような技術投資の話ではなく実務で使おうとしている話になります。 マッハバイトでは、求人ページに勤務地の最寄り駅に関する情報を掲載しています。 求人掲載の際に最寄駅は明示的に記載していただけることが多いのですが、一番近い最寄駅以外は意外と記載していただけないことがあります。 そこで、最寄駅から近い駅を自動抽出したいと考えたのですが、このようなニーズはマッハバイトに限ったものではないと思ったので、記事としてまとめてみました。 前提条件 実現するにあたり、以下を条件としました。 社内で使用している管理画面で使うだけなので、極力外部サービスに依存する箇所を減らす(≒専用のサービスを使わない) どこが近いかが分かれば良いので極端に高い精度は求めない たとえ、数十メートルずれていても駅同士の近さの関係にはほぼ影

                                                                          SQLを使って位置情報から距離計算をする - LIVESENSE ENGINEER BLOG
                                                                        • MariaDBとMySQLの違い─定番データベース管理システムの比較

                                                                          MariaDBとMySQLの違い─定番データベース管理システムの比較 以前の記事で、ウェブサーバーのApacheについて、それがインターネットの発達にどれだけ寄与したか、そしてそのマーケットシェアが競合のNginx(※読み方:「エンジンエックス」)に押されつつあることなどをご説明しました。ApacheはLAMP(Linux + Apache + MySQL + PHP)の一つであり、インターネットの半分はLAMPにより成り立っていると言っても過言ではありません。 今回は、共通点はありつつも異なるデータベースであり、世界中の何百万ものウェブサイトで使用されているMariaDBとMySQLの違いについてご紹介します。 MariaDBはMySQLから派生したものですが、二つのデータベース管理システムは大きく異なります。 MariaDBは完全なるGPLライセンスですが、MySQLはデュアルライセン

                                                                            MariaDBとMySQLの違い─定番データベース管理システムの比較
                                                                          • 実際のワークロードに近いSQLの負荷テストをmysqlslapのような感覚で行う方法を考える - GMOインターネットグループ グループ研究開発本部

                                                                            こんにちは,S.T.です。今回は,お手軽かつ実際のワークロードに近い形でMySQLの負荷検証をする方法を考えます。お手軽にMySQLに負荷をかけるツールとしてmysqlslapがありますが,mysqlが実行するSQLはアプリケーションから実行するSQLとは性質が異なります。JOINなども絡めてアプリケーションが実行するSQLに近いSQLで負荷をかけられ,しかも簡単に実行できる,というものがあれば便利そうです。 1.mysqlslapとは mysqlslapは,MySQLの負荷をエミュレーションできるクライアントアプリケーションです。MySQLに接続して複数のクエリを実行し,その実行時間を計測することができるツールです。インストールも簡単で,たいていはLinuxディストリビューションのパッケージマネージャ経由でMySQLをインストールすると,一緒に入ってきます。実行も簡単で,いくつかのオプシ

                                                                              実際のワークロードに近いSQLの負荷テストをmysqlslapのような感覚で行う方法を考える - GMOインターネットグループ グループ研究開発本部
                                                                            • 最近のRailsからのAuroraフェイルオーバー | DevelopersIO

                                                                              って言うと語弊がありますが、デフォルトがPumaになってる昨今のRails、という意味で。 Rails Aurora フェイルオーバー でググると色々ヒットしますが、少々偏った情報が多いため、整理して残したいと思った次第です。 偏ったというのは、Unicornでしか使えない(古い)情報が多いから。 さて 問題事象をザックリ言うと フェイルオーバーによって、(Railsが)知らない間にREADERに降格してた元WRITERに対して更新クエリ投げちゃってエラーになる です。Auroraの各インスタンスはフェイルオーバーによって、IPアドレスはそのままでREADER⇔WRITERにスイッチするのですが、Railsがそれに追従できずにそのままコネクションをプーリングし続けるために発生する問題。 まず ググると行き着くのこちらでしょう https://github.com/sonots/active

                                                                                最近のRailsからのAuroraフェイルオーバー | DevelopersIO
                                                                              • 世界一わかりやすい FULLTEXT INDEX の説明と気を付けるべきポイント

                                                                                FULLTEXT INDEX とは インデックス(索引)は、データベースの性能を向上させる方法の一つです。 しかし、通常のIndex では text ベースのカラム(CHAR型、VARCHAR型、TEXT型) から特定の文字列を検索する全文検索には向いていません。 それは、通常のIndex はカラムの値の一部ではなく、値全体に対する検索に最適化されているからです。 そのため、全文検索 (カラムの値の一部が一致している結果を取得) するには、別のインデックス FULLTEXT INDEX が必要です。 MySQL で FULLTEXT INDEX を利用するには MATCH 関数(*1)を利用する必要があります。 通常の LIKE 検索では、FULLTEXTIndex が利用されないため、速度的に不利です。(*2) (*1 DBMSによって様々、MS SQL では CONTAIN 関数を利用

                                                                                  世界一わかりやすい FULLTEXT INDEX の説明と気を付けるべきポイント
                                                                                • MySQL - 自作ストレージエンジンで初音ミクさんに歌っていただきましょう - こんぶのつけもの

                                                                                  この記事は MySQL Advent Calendar 2019 - Qiita 14日目の記事です。 三行で 初音ミク かわいい ポケットミクを制御するストレージエンジンを作った ことの発端 あやしいストレージエンジンができてきた pic.twitter.com/R1b1iDRWGT— miyakelp (@miyakelp_) 2019年11月11日 LTで紹介したMySQLでエアコンを動かすストレージエンジンですhttps://t.co/SCvlELIDXN— miyakelp (@miyakelp_) 2019年11月18日 MyNA望年LT大会2019にて,エアコンを動かすためのストレージエンジンを紹介させていただきました。 INSERTやUPDATEでエアコンのモードや設定温度を切り替え,SELECTで現在の状況を確認できるといったものでしたが, 当然MySQL単体で実現できる

                                                                                    MySQL - 自作ストレージエンジンで初音ミクさんに歌っていただきましょう - こんぶのつけもの