MySQL
お題 不要そうなインデックスを削除して、どれぐらい容量が減るのか確認したい information_schema.tables の INDEX_LENGTH では合計容量しか見えない mysql> SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH, INDEX_LENGTH FROM information_schema.tables WHE…
以前も書きましたが、MySQL のバージョンが 8.0 になってからダウングレードが出来なくなりました。マイナーバージョンであってもダウングレードすることが出来ません。ダウングレードするには、古いバージョンをインストールしたサーバを用意し、mysqldump…
TL;DR MySQL 8.0 で LOAD DATA INFILE LOCAL を利用するには、 サーバとクライアント両方で local-infile パラメータを ON にする必要がある セキュリティ強化のため、8.0から LOAD DATA INFILE LOCAL はデフォルトで無効にされた MySQL 8.0 で LOAD DATA IN…
yoku0825さんが、CentOS8 で MySQL 8.0 をビルドする記事を書いていました。 CentOS8でもビルドするために、あれこれインストールしないといけないようです。 yoku0825.blogspot.com CentOS7インストール直後の状態では色々足りない 最近のMySQLはビルドに最…
InnoDB FTS シリーズが続きます。今回は innodb_ft_enable_stopword についてです。 mita2db.hateblo.jp mita2db.hateblo.jp TL; DR ngram で、yakitori がヒットしない mysql> SELECT * FROM fts_ngram; +----+----------+ | id | c1 | +----+----------+ |…
このエントリーはMySQL Casual Advent Calendar 2019 の7日目です。 実は、毎年 12 /7 日書いてます。 mita2db.hateblo.jp mita2db.hateblo.jp -- 昨日は、@SHINOHARATTT さんでした。 ポケモンを題材にして論理設計を学ぶ というエントリーでした。楽しく学…
ngram_token_size パラメータは InnoDB FTS の ngram パーサーの設定です。ngram_token_size に指定した文字数ごとに文章をトークナイズします。 疑問 ngram_token_size をインデックス作成後から変更すると、どうなるのか? あり得るパターン CREATE INDEX …
先日書いたエントリーについて、 mita2db.hateblo.jp MySQL Weekly で tom__bo さんから頂いた、感想へのフィードバック(と補足)です。 mysql-weekly.hatenablog.com 僕がやりたかったこと 接続あふれしている時でも、DBAは管理者アカウントで接続できるよ…
以前、接続が溢れているとき(too many connectionsエラー発生時)でも接続可能にする Administrative Network Interface(管理NW IF) の概要をブログに書きました。この時は、特権アカウントの接続元との関連は書かなかったのですが、特権アカウントの接続…
はてなブログに引っ越して、初めての記事です。 先日、MyNA 忘年LT大会に参加してきました。 keny_lala さんが、MySQL クイズやったりしてて、面白かったです。 sakaik さん、企画ありがとうございます。来年もよろしくお願いします! sakaik.hateblo.jp 自…
昨日記事では core ファイルを圧縮する方法を紹介しました。 昨日の記事では、OSの機能(kernel.core_pattern)を使って対応する方法を紹介しました。 mita2db.hateblo.jp MySQL 8.0からは、MySQLの機能(設定)を利用して、巨大なcoreファイルを抑制するこ…
前回の記事ではdefault_table_encryption パラメータについて触れました。 default_table_encryptionでは、ENCRYPTION句を省略した場合の挙動を制御することができます。今回は、table_encryption_privilege_check パラメータについて確認してみます。 この…
MySQL Casual Talks vol.12 で発表してきた。 MySQLの容量とか圧縮まわり from Satoshi Mitani MySQLに入れるとしたらどれぐらいの容量が目安かアンケートしたりしてみました。 結果は、結構ばらけました。。。もうちょっと傾向が出ることを期待してたのです…
MySQL 8.0 で default_table_encryption パラメータが追加されてました。「テーブルの暗号化をデフォルトで有効にするオプションかな?」と思って、CREATE TABLEしてみるも変わらず・・・マニュアル見ると、データベースとテーブルスペースに効くと書いてあ…
前回の、MySQL Technology Cafe #4 に続き、#5 に参加してきました。タイムテーブル 時間内容登壇者18:00-18:25受付-18:25-18:30はじめにMySQL GBU18:30-19:15MySQL 8.0 の便利機能とSQL標準MySQL テクニカルアナリスト 木村明治 氏19:30-19:40MySQL Binlog …
プロシージャの中身のクエリはスロークエリログに落ちない の続き。Vanilla MySQLだとプロシージャの中身がログに落ちませんが、Percona Server ではスロークエリログが拡張されていて、ログに落ちます。log_slow_sp_statements で出力の有無を設定します。…
とあるMySQLのデータベースで、性能劣化した疑いのあるプロシージャがありました。プロシージャには複数のSELECTやINSERTが含まれています。どのSQLが遅かったか突き止める方法はあるのでしょうか?プロシージャに含まれている、各SQLはスロークエリログに落…
あるクエリがperformance_schemaに記録されなかった。原因を調べていて1つ記録されない条件を見つけたのでメモ。まず、問題ないパターン。mysql> SELECT NOW();+---------------------+| NOW() |+---------------------+| 2019-07-30 10:40:47 |+----------…
mysqldumpの --extended-insert オプションを利用すると、出力されるINSERT文がバルクINSERTの形式になる。まとめてINSERTすることで、書き込み回数を減らし、importにかかる時間を短縮するための仕組み。どこまで長いINSERT文が生成されるんだろうか?まさ…
このエントリーはMySQL Casual Advent Calendar 2018の7日目です。 自分は筆が遅く、11月から準備しようしよう、と思ってたにも関わらず、結局、直前になって書いてます。。。 さて、MySQL 8.0になって、performance_schemaが15個増えてました。5.7では、87…
8.0からGRANT ALLしたユーザをSHOW GRANTS FORすると、ALL PRIVILEGESではなく、 実際に付与されている個別の権限が列挙されるようになってた。 mysql> GRANT ALL PRIVILEGES ON *.* TO 'super'@'%';Query OK, 0 rows affected (0.07 sec)mysql> SHOW GRANTS…
07/23日の日本MySQLユーザ会で、MySQLのSSLや透過的暗号化について発表してきました。 透過的暗号化とSSL 使ってみた from Satoshi Mitani 発表の中で、 SSLのワイルドカード証明書がうまく扱えず、大量にサーバを管理するときは大変。。。という話をしまし…
MySQL のプロダクトマネジャーである Matt Lord さんをお招きして 日本MySQLユーザ会会 を開催しました。 当日はベストプラクティス・・・というかDBAからのお願いを発表してきました。DB利用者に意識してほしいことを中心に取り上げてみました。 My MySQL B…
Group Replication で特定のサーバのデータが吹き飛んでしまった場合の復旧手順を確認。 動いているサーバからdumpを取って、復旧すれば良いのだが、、、--single-transaction で mysqldump しようとすると、GRではSavepoint がサポートされていないため、 …
group_replication_recovery チャネルは障害後のサーバ間の差分同期のみに使われる。 Group Replication のステータスが ONLINE 状態のときは、Master_HostがNULL、Slave_{IO,SQL}_Running は NO。 mysql> select * from performance_schema.replication_gro…
テスト用のテーブル mysql> CREATE TABLE grplt.tbl (pk SERIAL, col1 int, who_update varchar(10));Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO grplt.tbl (col1, who_update) VALUES (1, 'node1') , (2, 'node1'), (3, 'node1');Query OK, …
MySQL 8.0 で入ると噂されていた、Group ReplicationがMySQL 5.7.17 でリリースされました。5.7 GAとは何だったのか。。。 とはいえ、早く使えるようになったのは、うれしいです。※ Group Replication は追加プラグインとして提供されているため、明示的に使…
とある企業のDBA @yoku0825 さんに ps-top というものを教えてもらったので試してみました。 ps は 「Performance Schema」のps です。MySQL の パフォーマンス統計である performance_schema の情報をtopコマンドのように表示してくれる。 インストールps-t…