3134 件中 911 - 920 件を表示
« 前の 10 件 | 次の 10 件 »
MySQL 8.0は SELECT .. FOR UPDATE SKIP LOCKED とJSON_TABLES関数で「取り敢えずJSON」が捗る?

TL;DR

  • auto_increment + JSON型(あるいはBLOB型やTEXT型でもいいけど)に生のJSONを突っ込む
  • 後から SELECT .. FOR UPDATE SKIP LOCKED でワーカーが取り出して、 INSERT .. SELECT JSON_TABLE(..) FROM .. で正規化したテーブルに突っ込みなおす
  • 外部APIからの戻りのJSONを取り敢えずログテーブルに格納して…みたいな感じを想像している

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)

[さらに読む]
「危険な正規表現」 vs MySQL 8.0

他にもいくつかあると思うけれど、俺の一番のお気に入り(?)はこれ。 危険な正規表現 | 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> | 明日一年ぶり夜勤。 …
[さらに読む]
Slave側のSystem lockについて

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 …

[さらに読む]
MySQL文字セットの変換

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)では絵文字を含む文字も処理する事が出来る為、バージョンアップと共に文字コードや照合順序を変更される事もあるかと思います。簡単ですが、手順を再確認して見ました。

[さらに読む]
#MANABIYA に行ってきました

3/23に開催された MANABIYA に行ってきました。 1日目の3/23しか行けなかったけれどかなり豪華な コンテンツ で、 澤田さん のPostgreSQLの今とこれから、 自分のセッション 、間に職員室なるものをはさんで 澤田さん, 木下さん , そーだいさん と謎のCrossSession、 kazeburoさんマイクロサービス on マルチクラウド

[さらに読む]
MySQLのクエリの良し悪しはrows_examinedで判断する

仕事やらなんやらでMySQLのクエリの良し悪しを判断する必要があるとき、EXPLAINの内容だけだとどのぐらい良くなったり悪くなったのか分からないので SET long_query_time = 0; してrows_examined (そのクエリでrows_sent行の結果を返すために何行に触ったのか)も一緒に提示するようにしている(少なくともMySQL 5.7時点ではrows_examinedはslow_query_logでしか確認できないはずperformance_schemaが有効ならevents_statements_historyやその仲間たちで確認できるとのこと*1

[さらに読む]
MySQL 8.0.4rc

MySQL 8.0.4rcは、「 一般公開前のドラフト:2018-03-19 」としてリリースされました 。 

[さらに読む]
MySQL8.0 エラーログの設定

MySQL8.0のエラーログの設定オプションが変わっているので、Fredのブログを確認しながら検証環境で確認しました。

新しいコンポーネントベースのエラーログには次の機能があり、自分の環境にあった設定を選択する事が可能になっています。

1) ログイベントは、フィルタコンポーネントによってフィルタリングして、書き込みに使用できる情報に影響を与えることができます。
2) ログイベントは、sink (writer)コンポーネントによって出力されます。 複数のシンクコンポーネントを有効にして、エラーログの出力を複数の宛先に書き込むことができます。
3) …

[さらに読む]
MySQLのチートシート

だから私はいつか私がすべきだと思ったように投稿した。 私はまだMySQLと関連するフォークと一緒に働いていてとても忙しく、私が思うようにブログを出していませんでした。 だから、私はそれに取り組むでしょう。 

先日、私はそれが一般的なVIチートシートリストだったので、私が愛していたウェブサイトを思い出しました。 あなたが知っている構文、あなたはそれが必要であることを知っていますが、それが正しいまで3回タイプします。 それはあなたがそれを見て右に入力されると、私はすでにそれを書いたと思った。 

[さらに読む]
#phperkaigi 2018 がとても楽しかった

PHPerKaigi 2018 に参加してきました。 まずは スポンサー のみなさん、いろいろ美味しゅうございましたありがとうございました。 スタッフ のみなさん、いろいろフォローありがとうございました。特に @uessy_akr さんがセッションの前後色々話しかけたりフォローしたりしてくれて助かりました。ありがとうございました!! あとは初めて物理 @cakephper さんに会えました。実物は @soudai1025 とちゃんと区別がつきました。青くなかった! …

[さらに読む]
3134 件中 911 - 920 件を表示
« 前の 10 件 | 次の 10 件 »