昨日の記事 では core ファイルを圧縮する方法を紹介しました。
昨日の記事では、OSの機能(kernel.core_pattern)を使って対応する方法を紹介しました。
MySQL 8.0からは、MySQLの機能(設定)を利用して、巨大なcoreファイルを抑制することができます。
https://dev.mysql.com/doc/refman/8.0/en/innodb-buffer-pool-in-core-file.html
一般的な運用では、MySQLのメモリのうち大半、InnoDBバッファプールが占めます。 MySQL 8.0.14 から
InnoDB バッファプールをcoreファイルに含めるかどうかを指定するパラメータ
innodb_buffer_pool_in_core_file が追加されました。
デフォルトはONで、これまで同様バッファプールを含めた、(大きな) coreファイルが出力されます。 …
昨日記事では core ファイルを圧縮する方法を紹介しました。 昨日の記事では、OSの機能(kernel.core_pattern)を使って対応する方法を紹介しました。
MySQL 8.0からは、MySQLの機能(設定)を利用して、巨大なcoreファイルを抑制することができます。
https://dev.mysql.com/doc/refman/8.0/en/innodb-buffer-pool-in-core-file.html
一般的な運用では、MySQLのメモリのうち大半、 …
TL;DR
- いつからできたのかは知らないけれど、気が付いたらMySQL Shellに dba.deploySandboxInstance() なんてものが出来ていてそれが感動的に楽なので熱が冷めないうちにメモ
如何に「MySQLとMySQL Shell以外他に何もいらない」かの感動を伝えるために、
ubuntu:latest のDockerコンテナを起動しただけの状態から始めます。 取り敢えず、
MySQLのaptリポジトリ の依存に指定されてるやつらをインストール。
# apt update
# apt install wget lsb-release gnupg
[さらに読む]
TL;DR
- MySQL :: MySQL 8.0 Reference Manual :: 6.2.15 Password Management の “Random Password Generation” のあたりに全部書いてある。
- MySQL 8.0.18から。
MySQL 8.0.18から、ランダムなパスワードを勝手に生成する RANDOM PASSWORD
構文が使えるようになった。
外部のパスワードジェネレータでいいじゃn ううんなんでもない。 CREATE USER と
ALTER USER は、本来パスワード文字列を渡すところにそのまま RANDOM
PASSWORD と置き換えると使える。
mysql80 18> CREATE USER b IDENTIFIED WITH mysql_native_password BY RANDOM PASSWORD;
+------+------+----------------------+
| user | host | generated password …[さらに読む]
8.0.18がリリースされたのでHash Joinを試してみました。
dockerには8.0.18 imageはなかったのでcentos7にinstallして実験
先にまとめ
- HASH JOINは等価条件のJOINでかつjoinするカラムにindexがない場合に採用される(ドキュメント1行目)
- HASH JOINしたかどうかは
EXPLAIN ANALYZEもしくはEXPLAIN FORMAT=TREE:で確認する -
JOINアルゴリズムの選択をコスト計算で行っているかは不明
- optimizer_traceみても単純に判断できそうな出力はない
install
yum localinstall -y …[さらに読む]
GIS関係のデータを探していると、緯度経度を表す数値として、度で表されているものと、度分秒で表されているものがあります。MySQLで扱えるのは、度(「35.65810012度」のような数字)です。度分秒(「35度39分29.172秒」のような表現)で公開されているデータを度単位に直すのが意外と面倒くさいので、こんなストアドを試しに作ってみました。
delimiter //
CREATE FUNCTION dfb2deg(d float, f float, b float)
RETURNS float DETERMINISTIC
RETURN d+f/60+b/60/60
//
delimiter ;
こうやって使います。
mysql> SELECT dfb2deg(139, 44, 28.8869); +---------------------------+ | dfb2deg(139, 44, 28.8869) | +---------------------------+ | 139.74136352539062 | …[さらに読む]
TL;DR
【2019/12/24 15:50】 8.0.20で直る、とバグレポートに書いてありますね。
- ユニークキー、PRIMARY KEYが文字列型の場合に良くないことが起こる。
- このバグが直るまでのバージョンで、「作り間違っちゃった」「あとからやっぱり変更したい」みたいなケースは十分気を付けた方が良いかと…
まずは何も考えずに val varchar(32) にユニークキーを作る。
この時の collation_server はデフォルトの …
TL;DR
- MySQL Bugs: #96986: Column Ordinal Position Not orderly updating
- 以下の4つの条件を満たすと
MySQL error code MY-013146 (ER_SERVER_SLAVE_CONVERSION_FAILED): Column %d of table '%-.192s.%-.192s' cannot be converted from type '%-.32s' to type '%-.32s'が発火してSQLスレッドが止まる-
binlog_format= ROWである - 式インデックスを使っている
- 式インデックスを作って以降、そのテーブルにカラムを追加した
- 論理バックアップからリストアしてスレーブを作成
-
- …