キープアライブはしばらく前から存在していましたが、それでも多くの人にとって謎です。
したがって、これはkeepalivedがMySQLでどのように機能するかを示す非常に単純な例です。
うまくいけば、これは質問がある人を助けることができます。
Simple master to slaveをセットアップします。
意味..あるイベントで2番目にフェイルオーバーしない限り、1つに書き込みます。
1日 - インストールkeepalived
#yum検索キープアライブ keepalived .x86_64:ロードバランサと高可用性サービス
名前と要約の一致のみ 。すべてを "search all"で検索してください。 #yum -y
install keepalived
これで設定ファイルができました
#ls -ltr /etc/keepalived/keepalived.conf
…
MySQL 8.0.14でLATERAL句がサポートされました。
一瞬、LITERALに空目しましたが、LATERAL(側面)でした。
LATERAL句を試してみます。
サンプルとしてこのようなテーブルを扱います。
従業員の一覧(employees)と、各従業員の特定の期間の月額給与(salaries)のテーブルです。
mysql> SELECT * FROM employees LIMIT 5;
+--------+-<snip>-+-----------+
| emp_no | <snip>-| last_name |
+--------+-<snip>-+-----------+
| 10001 | <snip>-| Facello |
| 10002 | <snip>-| Simmel |
| 10003 | <snip>-| Bamford |
| 10004 | <snip>-| Koblick |
| 10005 | <snip>-| Maliniak |
+--------+-<snip>-+-----------+
5 rows in set (0.00 sec) …
MySQL 8.0.14でLATERAL句がサポートされました。
一瞬、LITERALに空目しましたが、LATERAL(側面)でした。
LATERAL句を試してみます。
サンプルとしてこのようなテーブルを扱います。
従業員の一覧(employees)と、各従業員の特定の期間の月額給与(salaries)のテーブルです。
mysql> SELECT * FROM employees LIMIT 5;
+--------+--+-----------+
| emp_no | -| last_name |
+--------+--+-----------+
| 10001 | -| Facello |
| 10002 | -| Simmel |
| 10003 | -| Bamford |
| 10004 | -| Koblick |
| …
だから私は最近更新されたMySQL 5、6がなぜ古い5.5より遅いのかを調べるように依頼されました。
それで私は標準変数やキャッシュなどを見回すことから始めました。
テストケースは、5.5よりも5.6で実行するのに約2倍の時間がかかる単純なルーチンでした。
ミックスに追加するために、5.6バージョンはInnodb_buffer_pool_sizeの2倍、そしてもちろん全体的にもっと多くのramを持っていました。
だから私はMySQLslapでいくつかのテストを始めました...
Mysqlslapテストでは5.6では遅くなります
5.6:
mysqlslap --defaults-file =。/。my.cnf --concurrency = 150
--iterations = 130 -query = / test.sql --create-schema =
applicationdata --verbose
基準
…
MySQLでは異なる字が等しいと見なされることがあるということを書きました。
この動きはMySQLが独自に変なことをしているわけではなく、Unicodeの規則に従っています。
MySQL 8.0 のデフォルトのCollationは Unicode 9.0.0のUnicode Collation Algorithm(UCA) に従っています。
文字にはそれぞれ Weight という値が設定されていてソートに使用されています。この値が同じなら等しい文字とみなされます。
Collation
utf8mb4 のデフォルトの Collation は utf8mb4_0900_ai_ci …
ツイッターでこういうのがあったので、便乗してMySQLで考えてみるエントリ。
AP屋さんは読むべき。-- SQL大量発行処理をいかにして高速化するか #linux #oracle https://t.co/UkAMBc7KIB @SlideShareから
— ABE Masanori (@abe_masanori) 2019年4月4日
高速化手法として#1-#10の十個がリストアップされています。
#1 SQL発行数の削減 その?
…
新元号が「令和」に決まったことなので、MySQLでの扱いについての話を。
普通の文字
「令」も「和」もJIS第一水準に含まれている基本的な文字なので普通に日本語が使用できるcharsetで使用できます。
mysql> create table t (
utf8mb4 varchar(255) charset utf8mb4,
utf8mb3 varchar(255) charset utf8mb3,
utf16 varchar(255) charset utf16,
utf32 varchar(255) charset utf32,
cp932 varchar(255) charset cp932,
eucjpms varchar(255) charset eucjpms,
sjis varchar(255) charset sjis,
ujis varchar(255) charset ujis
);
mysql> insert into t values ('令和', '令和', '令和', '令和', '令和', '令和', '令和', '令和');
mysql> select * from t\G
*************************** 1. row ***************************
utf8mb4: 令和
utf8mb3: 令和
utf16: 令和
utf32: 令和
cp932: 令和
eucjpms: 令和
sjis: 令和
ujis: 令和
mysql> select hex(utf8mb4), …[さらに読む]
TL;DR
- 何も設定しなくても食うけど、
[client]セクションしか読んでくれないので「読んでない」と思われることが多いっぽい - それ以外のセクションを食わせるためには
~/.innotop/innotop.confに記述が必要だけど割と簡単だよ
innotop はPerl5製で DBD::mysql を使っているので、デフォルトファイルの読み込みは mysql_read_default_file と mysql_read_default_group あたりに影響を受ける。 …と思って探してみれば割とさっくり見つかって、
- …
https://qiita.com/tfukumori/items/959ed9c751734b73675fで上がってた話をMySQLで一応調査してみた。
やったこと
https://qiita.com/tfukumori/items/959ed9c751734b73675f であがってた文字コード「U+4EE4」と「U+F9A8」、あと「U+32FF」はいずれもMySQLに入れても大丈夫だよね?文字化けしないよね?(U+32FFは今は保留)という検証。
カラムの型
- char
- varchar
- text
の3つで試した。
また、 …
[さらに読む]MySQL8.0の機能を調べてまとめている。 Functional Key Partsについて読んだまとめ。
MySQL 8.0.13から関数index(functional key
parts)がサポートされる。
5.7以前ではカラムの値そのものかカラムのprefixでしかindexを作成することができなかったが、8.0.13からはテーブルに直接入っている値以外でもindexを作成することができるようになる。
- マルチカラムインデックスでは関数インデックスと通常indexを混在して指定できる
- ASC, DESC指定は関数インデックスでも可能
- PKに指定できない
- PKがない場合 …