🐬MySQL Technology Cafe #5🐬

Oracle Code Tokyo Night🗼 8月27日 18:30より開催された🐬MySQL Technology Cafe #5🐬 開催中のTweetまとめました! https://oracle-code-tokyo-dev.connpass.com/event/142204/
4
lhfukamachi @lhfukamachi

Explainのtree表示Oracleっぽいw 「コストとかはでないので」 #mysql_cafe

2019-08-27 18:50:56
Tomoo Takahashi @tjtakahashi

"EXPLAINのTreeフォーマットではコスト等の情報が出力されない" #mysql_cafe

2019-08-27 18:50:58
Siena. @n_siena

「explainのツリー表示。GAに入ったけど、experimental機能。ただし、処理行数や処理コストなどはまだ全く表示されないのでこれから。 .oO(やはり、大幅に見やすい#mysql_cafe

2019-08-27 18:51:01
Mitani @mita2

Nested loopであることが示されているのが興味深い > EXPLAIN FORMAT=TREE #mysql_cafe

2019-08-27 18:51:16
jitsu @jitsu

MySQL8.0の新機能、CREATE USERのパスワードオプション(パスワード再利用ポリシー) #mysql_jp #mysql_cafe

2019-08-27 18:51:39
learner0316 @learner0316

explainのformatは前からいろいろあったけど、treeは今後に期待#mysql_jp #mysql_cafe

2019-08-27 18:53:23
jitsu @jitsu

MySQL8.0の新機能、utf8mb4_0900_bin #mysql_jp #mysql_cafe

2019-08-27 18:54:00
Siena. @n_siena

「create user のパスワードポリシ。例えば、再利用を禁止するオプションとか。 8.0.17 で、新しいコレーション utf8mb4_0900_bin をサポート。パフォーマンスが喧伝されがちだけど、文字列比較セマンティクスの変更もある。MySQLは空白埋め文字列比較だったが、そうとは限らなくなった。 #mysql_cafe

2019-08-27 18:54:47
atsuizo @atsuizo

Explainのtree表示は歓迎なんだけど、MySQL WorkbenchのVisual Explainに頼っちゃうんだよなあ。 #MySQL_Cafe

2019-08-27 18:55:35
Siena. @n_siena

.oO(空白埋め比較は落とし穴にありがちだけど、これはこれで現場がこんらんしそうな ^^; #mysql_cafe

2019-08-27 18:55:48
Tomoo Takahashi @tjtakahashi

バルクインサートは便利。 どのRDBMSがサポートしてたかな。 #mysql_cafe

2019-08-27 18:58:33
Mitani @mita2

LIMIT句は便利だよねぇ。 #mysql_cafe

2019-08-27 18:59:58
Siena. @n_siena

「SQL標準。MySQLに最近実装されたものの例: * ストアドオブジェクト (SQL/PSM), ルーチン, ファンクション, トリガ * 共通表式 (CTE) * ウィンドウ関数 * check句 (ついに!!) * 生成列 #mysql_cafe

2019-08-27 19:00:35
ITOH Hiroyuki @i_rethi

fetchほげほげ(limit相当)、15年前にDB2(当時の通り大文字)使った開発で利用したなー。なつい。 #mysql_cafe

2019-08-27 19:00:59
Siena. @n_siena

「MySQLは当初から「便利」と思った機能を実装してきた。一部は SQL標準になったり、デファクト標準になったり。 * group_concat(), * limit句, * replace/insert … on conflict, * バルクインサート (insert … values …) #mysql_cafe

2019-08-27 19:01:20
Tomoo Takahashi @tjtakahashi

Oracle DatabaseとFirebird以外は使えるそうです。 #mysql_cafe

2019-08-27 19:01:26
とみたまさひろ🍣🍺 @tmtms

MySQL の GROUP_CONCAT() は STRING_AGG() なのかな? #mysql_cafe

2019-08-27 19:02:03
atsuizo @atsuizo

バルクインサート自体が素晴らしいのだけど、Connector/JでrewriteBatch使うと、max_allow_packetに収まる範囲に分割したでバルクインサート文に書き換えてくれるのが優秀だと思うんだ。#MySQL_Cafe

2019-08-27 19:02:49
Siena. @n_siena

「CTE。一つのSQL文中に限り、何度でも参照可能な一時表に名前を付けて扱える。 With T as (サブクエリ) select * from T … みたいの。これを使うと再帰クエリとかも書ける。 .oO(ややこしいクエリを括りだして読みやすくしたりもできのでうまく付き合っていきたい #mysql_cafe

2019-08-27 19:04:50
とみたまさひろ🍣🍺 @tmtms

PostgreSQL とかだと VALUES を SELECT みたいに使えるのか。誰得なのか…。 #mysql_cafe

2019-08-27 19:05:49
Siena. @n_siena

.oO(再帰クエリ、無限ループ検出とかあるのかしら……。 #mysql_cafe

2019-08-27 19:08:06
とみたまさひろ🍣🍺 @tmtms

WITH RECURSIVE の RECURSIVE を指定するとエラーになる実装もあるのか…。PostgreSQL, MySQL は指定しないとエラーになる。 #mysql_cafe

2019-08-27 19:09:10
Tomoo Takahashi @tjtakahashi

"お年寄りは知っている Oracle Databaseのstart with / connect by" #mysql_cafe

2019-08-27 19:09:47