これは、MySQL Advent Calendar 2022 の2日目のエントリです。 きっかけ 最近、MySQL上のデータを Apache Arrow形式で取り出したいという機会を得ました。珍しいケースかもしれませんが、世の中にあまり情報も多くないようなので、ここに記録をしたためる次第。 環境・前提条件 今回は以下の環境で動作確認をしました。 Ubuntu 22.04 MySQL 8.0.31 (Oracle公式リポジトリよりインストール) mysql2arrow のビルド mysql2arrow は、PG-Stromのリポジトリに含まれているものを自分でビルドして使います。 1. ビルド環…
新潟県は長岡市で開催された OSC2022 Nagaoka に参加してきました。ospn.connpass.com この数年、ずっとオンラインのみで開催されてきたOSCですが、規模の小ささ(参加者の予測が可能)という面もあって、オフライン開催の試行でもありました。やはり、直接顔を見ながらお話を聞くというのは素晴らしいし、聞いてくれる人の反応を見ながらお話できるのは安心できるな、と感じました。はやく普通にこういう対面イベントが開催できるようになると良いですね。 一応MySQLの情報を最近あまりキャッチアップしていない人に向けて、最近の状況を紹介するようなお話をしてきました。 (というのを12月末…
MySQL8.0.16のリリースノートに以下の様にTempTableの処理に変更が加わっていたので仕様を把握する為に、追加されたパラメータと挙動に関して確認してみました。見ていると、8.0.23での変更や、8.0.26におけるtemptable_use_mmapのdeprecate notice,8.0.28における変更もあるようです。なので、最新の挙動は8.0.31以降で再確認します。結論としては、8.0.28以降ではTempTable, MEMORYストレージエンジン共にtmp_table_sizeを適切に設定する必要あり。グローバルで利用されるTempTableリソースは, temptable_max_ramで上限を設定され、Defaultは1GBになっています。
InnoDB: When the amount of memory occupied by the TempTable storage engine exceeds the limit defined by the temptable_max_ram variable, …
[さらに読む]MySQL8.0.16のリリースノートにアカウントに広い範囲で権限を付与した後に、特定の権限だけREVOKEする方法についての機能追加が実装されていたので確認してみました。
Previously, it was not possible to grant privileges that apply globally except for certain schemas. This is now possible if the new partial_revokes system variable is enabled. For example, the following statements enable an account to select from or insert into any table except those in the mysql system schema:
Changes in MySQL 8.0.16 (2019-04-25, General Availability)
- …
MySQLを運用する中で、SYS Schemaを利用してインスタンスの状態を確認する事が増えていますが、Performance Schemaを直接見てSQL処理を確認するケースも相変わら多いか思います。まだ具体的にどの様に活用していくかは目途が付いていませんが、MySQL8.0.14のリリースノートに以下の様にSTATEMENT_IDが付与される様になったとの記載があったので念の為に概要だけ確認しておきます。
SYS Schema
The Performance Schema statement event tables (events_statements_current, events_statements_history, and events_statements_history_long) now have a STATEMENT_ID column that indicates the query ID maintained by the server at the SQL level. Column values are unique for the server instance because they are generated using a global counter that is incremented atomically.
…
[さらに読む]MySQL8.0.14のリリースノートに以下の、管理用の接続が追加されたとの記載がありました。max_connectionに到達してしまい「Too many connections」が出た時の対策として活用出来ると思い、基本的な機能を確認してみました。
MySQL Server now permits a TCP/IP port to be configured specifically for administrative connections. This provides an alternative to the single administrative connection that is permitted on the network interfaces used for ordinary connections even when max_connections connections are already established. The administrative network interface has these characteristics:
Changes in MySQL 8.0.14 (2019-01-21, General Availability)
管理ネットワークインタフェースで TCP/IP 接続をリスニングする IP …
[さらに読む]MySQL8.0.14のリリースノートに以下の様に1つのアカウントに2つのパスワードを持つ事が出来る様になったとの記載があったので軽くレビューしてみました。オフィシャルマニュアルに記載がある様に定期的なパスワードは必要ですが、これまではまとめて1回のメンテナンスで全てのアプリケーションの接続で利用されているパスワードを変更するか、同じ権限でアカウントをもう1つ用意して、1つ1つ入れ替える事が必要でしたが、パスワードを2つ持てるのであれば、タイミングを見て複数のアプリケーションのパスワードを段階的に変更する事が出来るので有難い選択肢ですね。
…
[さらに読む]