TL;DR
- バイナリーログの自動パージ期間を設定する expire_logs_days はMySQL 8.0では非推奨
- 代わりに binlog_expire_logs_seconds を設定する
MySQL 8.0.1 で導入された binlog_expire_logs_seconds 当初は expire_logs_days と 足し合わせる …
[さらに読む]TL;DR
MySQL 8.0.1 で導入された binlog_expire_logs_seconds 当初は expire_logs_days と 足し合わせる …
[さらに読む]TL;DR
単なる連番のテストデータを作りたい時とか、再帰CTEは便利(というかMySQLerは今まで再帰CTEが使えなかったので、そもそもそれ以外の使い方は思いつかないわけだが)だけれど、 ↓ を訳した時点ではWHERE句を間違えるとさっくりとクエリーが逝きっぱなしになっていた。 MySQL 8.0 Lab版: MySQLの (再帰)共通テーブル式(CTE) | Yakst それが、MySQL 8.0.3から cte_max_recursion_depth …
[さらに読む]TL;DR
SELECT .. FOR UPDATE SKIP LOCKED
でワーカーが取り出して、 INSERT .. SELECT JSON_TABLE(..) FROM ..
で正規化したテーブルに突っ込みなおす
PoC こんなテーブルを用意した。
mysql80 13> SHOW CREATE TABLE t2\G
*************************** 1. row ***************************
Table: t2
Create Table: CREATE TABLE `t2` (
`seq` int(10) unsigned NOT NULL AUTO_INCREMENT,
`raw_json` json DEFAULT NULL,
PRIMARY KEY (`seq`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_ja_0900_as_cs
1 row in set (0.00 sec)
…
[さらに読む]他にもいくつかあると思うけれど、俺の一番のお気に入り(?)はこれ。 危険な正規表現 | MOYO Laboratory (.*)*^ 試してみよう。
mysql80 15> SELECT * FROM t1 LIMIT 3;
+-------------+---------------------+------------------------------------------------------------+--------------------------------------------------------------------+
| tweet_id | timestamp | source | text |
+-------------+---------------------+------------------------------------------------------------+--------------------------------------------------------------------+
| 22431873995 | 2010-08-29 09:00:00 | <a href="http://twicca.r246.jp/" rel="nofollow">twicca</a> | 明日一年ぶり夜勤。 …[さらに読む]
MySQL5.7までのSHOW SLAVE STATUSだけでは分からない事が多かったけど、MySQL8.0のSHOW SLAVE
STATUSは少し改善されていた。
マスター側で負荷をかけて、スレーブの状態を確認した時にスレーブ側で”Systetm
lock”という状態になっていて、詳細を確認する為にPerformance Schemaを確認してみた。
MySQL8.0からはPerformance_Schemaを確認しなくても”Slave_SQL_Running_State”で状態が確認出来るようになっている。
以下、MySQL8.0で確認したログですが、MySQL5.7では”System
lock”だった状態が、MySQL8.0では”Applying batch of row changes
(update)”になっています。
[admin@misc02 ~]$ cat repli_log | grep
Slave_SQL_Running_State
Slave_SQL_Running_State: Slave has read all relay log; waiting
for more updates
Slave_SQL_Running_State: Slave has read all relay log; waiting
for more updates …
MySQL8.0における文字セットの変更:
デフォルトの文字セットがlatin1からutf8mb4に変更されます。
これらのシステム変数は次のような影響を受けます。character_set_serverおよびcharacter_set_databaseシステム変数のデフォルト値は、latin1からutf8mb4に変更。collation_serverおよびcollation_databaseシステム変数のデフォルト値は、latin1_swedish_ciからutf8mb4_0900_ai_ciに変更。
MySQL8.0では、Unicode9までアップグレードされています、またutf8mb4(4byte)では絵文字を含む文字も処理する事が出来る為、バージョンアップと共に文字コードや照合順序を変更される事もあるかと思います。簡単ですが、手順を再確認して見ました。
…
[さらに読む]3/23に開催された MANABIYA に行ってきました。 1日目の3/23しか行けなかったけれどかなり豪華な コンテンツ で、 澤田さん のPostgreSQLの今とこれから、 自分のセッション 、間に職員室なるものをはさんで 澤田さん, 木下さん , そーだいさん と謎のCrossSession、 kazeburoさん の マイクロサービス on マルチクラウド …
[さらに読む]PHPerKaigi 2018 に参加してきました。 まずは スポンサー のみなさん、いろいろ美味しゅうございましたありがとうございました。 スタッフ のみなさん、いろいろフォローありがとうございました。特に @uessy_akr さんがセッションの前後色々話しかけたりフォローしたりしてくれて助かりました。ありがとうございました!! あとは初めて物理 @cakephper さんに会えました。実物は @soudai1025 とちゃんと区別がつきました。青くなかった! …
[さらに読む]
SYSスキーマの説明をする機会があったので、改めてMySQL5.7.21でSYSスキーマに関しての概要をまとめたのでご紹介。
Performance_Schema,
Information_Schemaを直接確認しないと取得出来無い情報もまだあるけれど、SYSスキーマを利用すれば簡単にMySQLの状態を確認出来、複雑なクエリーを使わないでもロックの状態、メモリーの状態、未使用のインデックス、起動してからの累積値だけれども遅いクエリー等が確認可能です。まだまだ使われていないユーザーも多いけど、便利なので是非活用下さい。
MySQL5.7.21の時点では以下のオブジェクトが存在します。
root@localhost [sys]> select * from schema_object_overview where db = 'sys'; +-----+---------------+-------+ | db | object_type | count | +-----+---------------+-------+ | sys | TRIGGER | 2 | | sys | FUNCTION …[さらに読む]