MySQLでのJSONデータの扱い方を、いつか試してみなきゃなぁと思い始めて2年以上が経っているのですが、ようやく、触ってみたいと思うJSONデータに出会ったので、重い腰を上げて試してみました。当方、JSON初心者ですので、このエントリは「お勉強日記」です。 JSONデータ 先日はじめて、COCOAアプリからの接触確認通知が来ました。このデータはJSON形式のデータとして取り出せるということで、これが今回扱うターゲットデータとなります。 手順としては、 COCOAアプリで「情報を保存」ボタンを押して、データを取り出し(私は手軽にメールで自分宛に送信する方法を採りました) 取り出したテキストファ…
MySQL に独自 charset を追加できる…という話はずっと前に聞いたことあったけど、やったことなかったんでやってみた。
詳しくは MySQL :: MySQL 8.0 リファレンスマニュアル :: 10.13 文字セットの追加 を。
マルチバイト charset は C でプログラムを書いてコンパイルする必要があるけど、1バイト charset はファイルを置くだけで追加できる。
1バイトの charset と言えばみんなご存知の JIS X
0201 ですよね。ということで、jisx0201
という charset を作ってみる。
JIS X 0201 のコードはこんな感じ:
x0 | x1 | x2 … |
---|
TL;DR
- 同じ動作をするけどシノニムではない何かを思いつく限り
- See also, MySQLのシノニム - tmtms のメモ and MySQL: desc は explain !? - sakaikの日々雑感~(T)編
実装上はシノニムになっていないけれど、同じ(ような)動きをする何かたち。
その1 | その2 | 扱い |
---|---|---|
MASTER, SLAVE系 | SOURCE, REPLICA系 | sql/sql_yacc.yyの中で丸められている |
{SHOW|PURGE} BINARY LOGS | {SHOW|PURGE} MASTER LOGS | 同上 |
sakaik さんが MySQL: desc は explain !? - sakaikの日々雑感~(T)編 という記事を上げてたのを見て、そういや最近はほかにどんなのがあるんだっけ…と思って調べてみた。
以下はMySQL 8.0.29 の sql/lex.h から抽出したもの。字句解析上のシノニム。
<> | != | ||
ANY | SOME | ||
BIGINT | INT8 | ||
CHAR | … |
将棋のタイトル獲得期数の話をしていると、「昔はタイトル戦自体が少なかったから」「タイトル戦が3つしかなかった時代の大山先生が今の8つ時代ならいくつ獲っただろうね」という話題になることも多いですね。じゃぁ、年4つの時代に4つとも獲れば(今で言うところの)8個相当、というように重み付けをしてみたらどうなるんだろう、と試してみた日記です。 もちろんタイトル戦が多くなれば日程が詰まって準備の時間が少なくなるとか疲労がたまるとか、まったく条件が同じというわけではありませんが、お遊びとしてお付き合いいただけたらと思います。 データの用意 ネットで公開されているタイトル保持者データを、Excelとテキストフ…
TL;DR
-
Percona XtraBackup 8.0.29 and INSTANT ADD/DROP Columns - Percona Database Performance Blog がほぼ全て
-
xb 8.0.29でMySQL 8.0.29のバックアップを取ろうとした時に、1つでもINSTANT COLUMN(ADDまたはDROP)が存在するとエラーになる
$ xtrabackup --version
2022-07-20T18:36:05.410933+09:00 0 [Note] [MY-011825] [Xtrabackup] recognized server arguments: --server-id=1 --log_bin=mysql-bin --log-bin-index=bin.index --innodb_buffer_pool_size=60G --innodb_file_per_table=1 --innodb_flush_method=O_DIRECT
xtrabackup version 8.0.29-22 based on MySQL server 8.0.29 Linux (x86_64) (revision id: c31e7ddcce3)
INSTANT COLUMNが無ければ、Vanilla MySQL …
[さらに読む]別件の確認のために MySQL マニュアルを見ていて、とんでもない事に気づいてしまいました。 The DESCRIBE and EXPLAIN statements are synonyms. MySQL :: MySQL 8.0 Reference Manual :: 13.8.2 EXPLAIN Statement ご存じの通り、MySQL において、DESC (または DESCRIBE)はテーブル定義を確認するときに使用するもの、EXPLAINは実行計画を確認するものとして知られています。こいつらがシノニムだっただと・・・・・!!|???. 私の知ってる DESCの使い方: mysql>…
自分では「知っている」と思っていても、会話の中でふと自信がなくなることってありますよね。 自分の知識として「常識」になっているけど、気づけば10年以上も意識して試したことのないものとか。 表題のテーマが、今回の私のソレです。 ということで、COUNT(*) とか COUNT(カラム名) とかの書き方で動作がどう変わるのか改めて試した結果を整理してみた、という、初心者向きの内容です。 どんな書き方があるか COUNT(*) COUNT(カラム名) COUNT(DISTINCT カラム名) これらはそのカラムが NULL の行が存在するか否かで結果が変わります。 サンプルデータ CREATE TA…
長らくオフラインのイベントを開催できないと、ざっくばらんにわいわいと語り合うあの雰囲気を忘れそうにもなり、また、恋しくもなります。 オンラインで、何か少しでもあの雰囲気を作ることはできないか、と悩んだ結果、こんなイベントをやってみています。mysql.connpass.com Discordを使って、みんなで集まる時間を決めて、あとは話題もなにも事前には決めない。 集まった人で、たまたまそのときに話題になったもので盛り上がったり盛り下がったりする、飲み会のあの雰囲気になれたらいいなぁと、先月から開催してみています。 まずは月1回ずつ、少なくとも3回は続けてみるつもりでやっていますが、意外と盛り…
とみたさんから、MySQLの次の次のバージョンで挙動が変更になる話を教えてもらったので、記録。 mysql> use mysql mysql> SELECT user FROM user LIMIT 2; +------------------+ | user | +------------------+ | mysql.infoschema | | mysql.session | +------------------+ 2 rows in set (0.00 sec) 適当なテーブルから LIMIT句を使って2件のデータを取得したもの。これはまぁ普通の挙動。 次に、これを入れ子にしてみる。…