パーティショニングしたテーブルの確認方法
MySQL触ってて、実は仕事上では一度も触ったことがなかったパーティショニング。
(だって、色んな人が使えないって言ってたんだもん)
だけど、意外と世の中使ってる人は多いので今後のためにもパーティショニングしたテーブルの確認方法を色々見てみました。
まずはパーティションテーブル作る
ドキュメントからテーブルを拝借しました。
…
[さらに読む]TL;DR
datadir/#innodb_temp
ディレクトリ
PoC
### ダミーデータを1000万行ほど
$ perl -MDigest::MD5 -E 'for (my $n= …
[さらに読む]
gihyo.jpの連載「MySQL道普請便り」の最新回(第123回)は、ロッキングリード(SELECT ~ FOR UPDATE)のつかいどころのお話が興味深かったです。
乱暴に要約すると、例えば 5000枚のチケットを捌くUPDATEは、いきなり UPDATE するのではなくて、SELECT ~ FOR UPDATE でロックを取ってからUPADTEすると、同時実行数が大きくなっても遅くならないぞ、という内容です。人気のあるチケットの販売って、瞬時に大量の更新が走りますからね。 まさにチケットを捌くと、あっという間に砂漠みたいに何もなくなります。ひと仕事終えた人たちはデザートでもどうぞ。砂漠だけに。
…
[さらに読む]最近(でもないけど) information_schema.tables の中身を1日1回程度取得してMySQLに突っ込んでいる。
/*!80013 SET SESSION information_schema_stats_expiry = 0; */
SELECT
table_schema AS table_schema,
table_name AS table_name,
table_rows AS table_rows,
data_length AS data_length,
index_length AS index_length,
data_free AS data_free,
engine AS engine,
NOW() AS last_update
FROM
information_schema.tables
WHERE
table_schema NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys') AND
table_type = 'BASE TABLE'
ORDER BY
data_length + index_length DESC;
CREATE TABLE `table_status_info` (
`seq` bigint unsigned NOT NULL AUTO_INCREMENT,
`ipaddr` varchar(15) NOT NULL,
`port` smallint unsigned NOT NULL, …
[さらに読む]
MySQL 8.0 で SPATIAL INDEX を使うとき、特定の条件で検索が非常に遅くなる不具合がありました。
MySQL8.0の空間検索が遅い?(miyauchi さん) MySQL8.0の空間検索が遅い?の続き1(miyauchi さん)
MySQL 8.0.20 でこの不具合が直ったと聞いたので、実際に試してみました。
テスト環境
手元の Windows 10 PC Windows 版 MySQL Server 8.0.17(修正前)と MySQL Server 8.0.20(修正後)で比較 検索対象のデータは以前 POLARDB PostgreSQL 11 互換版で Ganos を試すときに使ったものと同じ
Alibaba Cloud の POLARDB を試してみる(6)PostgreSQL 11 互換版で Ganos を試す
国土数値情報 ダウンロードサービス から「行政区域」で「全国」を選び、平成 31 年のデータをダウンロード
先ほどの miyauchi …
[さらに読む]
Yoku-san no ToolKIT の yt-healthcheck
はデフォルトでは「接続先のMySQLがマスターなのかスレーブなのか mikasafabricなのか
」によって監視項目を切り替える。
—role によって明示的に “master” なり “slave”
なりを押し込むこともできるけれど、デフォルトは “auto” で、 yt-healthcheck
自身が勝手にマスターかスレーブかあるいは中間マスター(カスケード構成の2段目、子スレーブ(孫スレーブの親))かを判定する。
https://github.com/yoku0825/ytkit/blob/0.2.1/lib/Ytkit/HealthCheck.pm#L181-L207
判定ロジックはこんな感じ。 …
[さらに読む]