2200 件中 11 - 20 件を表示
« 前の 10 件 | 次の 10 件 »
そろそろMySQLのutf8について一言いっとくか

MySQLのutf8 charsetは、やれ「罠」だの「絵文字が入らなくて使えない」だの「utf8という名前はutf8mb4の別名にすべき」だの、散々な言われようでディスられてかわいそうな charset なんだけど、というか主に私がそう言ってる気もするんだけど、そろそろ utf8mb3 のエイリアスとしての utf8 は消え去ろうとしてるみたいなので、ここでちょっと勝手にフォローしておく。

UTF-8 エンコーディングの RFC は RFC3629で、ここで UTF-8 は最大4バイトと書かれている。 しかし、この RFC3629 の前のRFC2279では6バイトだった。 RFC3629 の日付は 2003/11 なので、つまり 2003/11 よりも前は UTF-8 …

[さらに読む]
『プロフェッショナルSSL/TLS』読書会 #6 に参加しました。

久しぶりに開催された下記読書会に参加いたしました。

『プロフェッショナルSSL/TLS』読書会 #6

第9章 パフォーマンス最適化
第10章 HSTS, CSP, ピンニング

前回いつでたのかも思い出せませんが w とりあえず書籍は購入して、この読書会をたよりに読み進めようと思ってましたが、毎回「へぇー」で終わり。いけませんねぇ。

とりあえず電子書籍を購入していた人は「マイ本棚」を作成すると、アップデート版が入手できることを教えてもらい、更新版をゲット。さすがに印刷本は再度購入する必要があるそうですが、印刷本+電子版で購入した私はセーフ、でした。

[さらに読む]
MySQL 8.0にはperformance_schema.events_statements_summary_by_digest にQUERY_SAMPLE_TEXTカラムが追加された

MySQL 5.7からMySQL 8.0でのevents_statements_summary_by_digestのカラム変更。

$ diff -y --suppress-common-lines <(mysql57 -sse "DESC p_s.events_statements_summary_by_digest")
<(mysql80 -sse "DESC p_s.events_statements_summary_by_digest")
DIGEST varchar(32) YES NULL | DIGEST varchar(64) YES NULL
FIRST_SEEN timestamp NO 0000-00-00 00 | FIRST_SEEN timestamp(6) NO 0000-00-00 00
LAST_SEEN timestamp NO 0000-00-00 00 | LAST_SEEN timestamp(6) NO 0000-00-00 00
> QUANTILE_95 bigint(20) unsigned NO NULL
> QUANTILE_99 bigint(20) unsigned NO NULL
> …
[さらに読む]
default_collation_for_utf8mb4 なんてパラメーターが追加になっていた

MySQL :: MySQL 8.0 Reference Manual :: 5.1.7 Server System Variables 何このパラメーター、と思ったら、 utf8mb4 のデフォルトコレーションが utf8mb4_general_ci (MySQL 5.7とそれ以前) から utf8mb4_0900_ai_ci (MySQL 8.0)に変わったことに対する経過措置っぽかった。 これを utf8mb4_general_ci にセットしておくと、コレーションを指定せずに utf8mb4 を使った時に今まで通り utf8mb4_general_ci を使ってくれるということ。 当然 CREATE TABLE, ALTER TABLE では想像したように動いて

mysql80 13> SELECT @@default_collation_for_utf8mb4;
+---------------------------------+
| @@default_collation_for_utf8mb4 | …
[さらに読む]
MySQLのsjisとcp932の違い

今さらですけど、自分でもちゃんと把握してなかったので調べてみました。

MySQLのCharsetのうちシフトJIS系のものはsjisとcp932の二つあります。

どちらもコードの範囲は次のように同じです。

1バイト文字 0x00-0x7F, 0xA1-0xDF
2バイト文字の1バイト目 0x81-0x9F, 0xE0-0xFC
2バイト文字の2バイト目 0x40-0x7E, 0x80-0xFC

違いは文字集合です。1バイト文字はどちらも同じ(ASCII + JIS X 0201 カナ)ですが、2バイト文字はsjisはJIS X 0208 で、cp932はWindows-31Jです。

sjisに含まれていない文字

[さらに読む]
MySQL Innovation Day Tokyo で MySQL 8 の文字コードについて話した

MySQL Innovation Day Tokyo に参加して10分ほど喋ってきました。

ひさびさに巨大サキラちゃん登場。本人曰く5年間ほど倉庫に隠れてたそうです。

昼ごはんは今半のすき焼弁当でした。豪華!

会場の様子。百数十人で満員でした

以下わたしの発表内容。スライドはこちら https://tmtm.github.io/mysql-innovation-tokyo/

MySQL恒例「RCとはいったい…」案件

utf8の指定でwarningが出るようになった

mysql> set names utf8;
Query OK, 0 rows affected, 1 warning (0.00 sec)

Warning (Code 3719): 'utf8' is currently an alias for the character set UTF8MB3, which will be replaced by UTF8MB4 in a future release. Please consider …
[さらに読む]
"「7の倍数」を表す正規表現" をMySQL 8.0で試す

1年半くらい前に書かれたらしいけれど、ふと今日 「7の倍数」を表す正規表現 - Qiita を見つけて読んだ。 (取り敢えず今の俺の中で)正規表現といえばMySQL 8.0。

そして(取り敢えず今の俺の中で)forループ的に数値をテストするといえばCTE、CTEといえばMySQL 8.0。

やってみます。 …

[さらに読む]
プロキシMySQL :: HAproxy || ProxySQLとKeepAlived


だからあなたのMySQLトラフィックをルーティングする場合、いくつかのオプションが存在します。 

[さらに読む]
yum版のMySQL 8.0をCentOSなコンテナーにインストールすると Operation not permitted って言われる… (ビルド時にsetcap cap_sys_nice+ep されてた)

TL;DR

  • docker run する時に --cap-add=SYS_NICE を付け加えてやると上手くいく
$ docker run -it centos:centos7 bash
[root@457e75eaa657 /]# yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
[root@457e75eaa657 /]# yum install -y mysql-community-server
[root@457e75eaa657 /]# mysqld --version
bash: /usr/sbin/mysqld: Operation not permitted

[さらに読む]
なるべく負荷をかけずにInnoDBバッファプールに載っているページの情報を見る

TL;DR

  • information_schema.innodb_buffer_page は重い
  • ib_buffer_pool にはテーブルスペースIDが記録されるので、それを使ってほげほげする
  • こんな感じ?
mysql> SET GLOBAL innodb_buffer_pool_dump_now = 1;
mysql> SELECT space, name FROM information_schema.innodb_sys_tablespaces INTO OUTFILE '/tmp/space.txt';

$ awk -F, '{print $1}' /var/lib/mysql/ib_buffer_pool | sort | join - <(sort /tmp/space.txt) | uniq -c | sort -n -r -k 1 | head
54570 50 hogehoge/fugafuga
12192 27 hogehoge/message
10494 31 hogehoge/piyopiyo
9683 42 hogehoge/magomago
6103 30 hogehoge/message_inbox

MySQL Bugs: #90733: TheMySQL server has hanged up when query on the sys.innodb_buffer_stats_by_table

[さらに読む]
2200 件中 11 - 20 件を表示
« 前の 10 件 | 次の 10 件 »