1967 件中 591 - 600 件を表示
« 前の 10 件 | 次の 10 件 »
Displaying posts with tag: MySQL (reset)
MySQL 8.0 GROUP BY関連の新機能

MySQL8.0の機能を調べてまとめている。
タイトルどおりGROUP BY ... WITH ROLLUPについてドキュメントを読んだまとめ。

GROUP BYで指定したカラム自体の全体の集約(超集約: super-aggregate)結果を返すWITH ROLLUP句で大きく2点の改良と機能追加があった.

  1. ORDER BY及びDISTINCTWITH ROLLUPと同時に指定することができるようになった
  2. GROUPING()の導入。超集約によって発生したNULLなのかもともとNULLが入っていたものかを判別可能になった

WITH ROLLUPによるsuper-aggregate

そもそもWITH ROLLUPによるsuper-aggregateがどういったものか示す

[さらに読む]
MySQL 8.0 新機能 Window Function

MySQL 8.0の新機能について調べてまとめています。 今回はWindow関数に関する章(https://dev.mysql.com/doc/refman/8.0/en/window-functions.html )を読んだまとめです。

window関数はクエリの結果から行ごとにその行に関連する計算を行う機能。
GROUP BYでは集約操作の集約するカラムの値ごとに1行の結果が返ってくるのに対し、window関数では行ごとにwindow関数による計算され結果が返る。

例えば(https://dev.mysql.com/doc/refman/8.0/en/window-functions-usage.html より)

mysql> SELECT
         year, country, product, profit,
         SUM(profit) OVER() AS …
[さらに読む]
MySQL 8.0新機能 CTE (Common Table Expression)

MySQL 8.0の新機能について調べてまとめました。
この記事は公式ドキュメントの以下のページの読んだまとめです。

dev.mysql.com

サンプルのクエリもほぼドキュメントのものですが、手元の8.0.15で実行した結果をつけている場合もあります。場合によって説明の順番を組み替えたり、補足したりしています。

CTE

CTE(Common Table Expression)とは1つのステートメントのスコープ内にできる名前付きの一時結果のこと。 この一時結果は複数回またはCTE内で …

[さらに読む]
ストレージエンジンをインストールしている環境でのリストアではまりがちなこと

TL;DR

  • plugin_dir に必要な .so ファイルを置いておくのは大前提
  • mysqldump から戻す時は、戻す前に自分で INSTALL PLUGIN
  • 物理バックアップから戻すときは基本的にそのまま戻して起動すればおk

周囲1mくらいで2回聞かれたのでメモしておく。
対象は ストレージエンジンプラグイン (デーモンプラグインである innodb_memcached とか mysqlx は対象外)かつサーバーデフォルトで有効になって いない もの( InnoDB, MyISAM などは対象外)、つまりだいたい Mroonga, TokuDB, RocksDB あたりをターゲットとして見ている。 …

[さらに読む]
RDS for MySQLで変更すべきパラメータチューニング

呼ばれたきがしたので

soudai.hatenablog.com

なお、InnoDB限定のお話ですよ。MyISAMを(システムテーブル以外で)使ったことない若輩者なので。

ちょっと余裕がないこともあり、思いつく最小限のことだけ書きます。追加で思いついたら後ほど&温かいフォロー(というマサカリ?)歓迎。

checkpointに影響がある値 innodb_log_file_size

Redoログのファイルサイズです。

生 …

[さらに読む]
gh-ostを中断させたらどうなるのかの試み

gh-ost 3日目。 gh-ostを中断させたらどうなるのか確認してみる。 pt-osc はデフォルトでは中断する時に

  • テンポラリーテーブル(gh-ost的には「ゴーストテーブル」) が残存する
  • テンポラリーテーブルに対するトリガーも残存する

な訳だがgh-ostはいかがなものか。 取り敢えず Ctrl + Cで終了させてみる

$ gh-ost --database=mysqlslap --table=t1 --alter="ADD KEY (intcol1)" --host=127.0.0.1 --port=21800 --user=msandbox --password=msandbox --allow-on-master --execute
..
^C
  • *_ghc*_gho なテーブルが残った
master [localhost] {msandbox} (mysqlslap) …
[さらに読む]
gho-stでスレーブからバイナリーログを食いながらインデックスを足してみる

TL;DR

  • マスターから食ってもスレーブから食っても動作が変わっているような気はしない
  • 能動的なスレーブの遅延監視を入れるなら --throttle-control-replicas を自分で入れないといけない

昨日 の続き。
昨日の時点では pt-online-schema-change っぽくマスターに接続してバイナリーログを吸いながらマスターに食わせたけれど、今日はデフォルトの「スレーブに接続してバイナリーログを吸ってマスターに食わせる」をやってみる。 早速。

$ master/my sqlslap --auto-generate-sql --auto-generate-sql-execute-number=100000 --auto-generate-sql-guid-primary

$ gh-ost --database=mysqlslap --table=t1 --alter="ADD KEY (intcol1)" --host=127.0.0.1 --port=21801 …
[さらに読む]
mysqldumpで出力されるINSERT文の最大長は?

mysqldumpの --extended-insert オプションを利用すると、出力されるINSERT文がバルクINSERTの形式になる。
まとめてINSERTすることで、書き込み回数を減らし、importにかかる時間を短縮するための仕組み。

どこまで長いINSERT文が生成されるんだろうか?
まさか、10Gのテーブルをdumpしたら、10Gの巨大なINSERT文ができる・・・ということはないよね・・・

結論としては、net_buffer_lengthに収まるように調整される。
マニュアルにも記載がある。

クライアント/サーバー通信用のバッファーの初期サイズ。複数行の INSERT ステートメント (--extended-insert オプションまたは --opt オプションを使用する場合など) を作成する場合、mysqldumpnet_buffer_length

[さらに読む]
mysqldumpで出力されるINSERT文の最大長は?

mysqldumpの --extended-insert オプションを利用すると、出力されるINSERT文がバルクINSERTの形式になる。
まとめてINSERTすることで、書き込み回数を減らし、importにかかる時間を短縮するための仕組み。

どこまで長いINSERT文が生成されるんだろうか?
まさか、10Gのテーブルをdumpしたら、10Gの巨大なINSERT文ができる・・・ということはないよね・・・

結論としては、net_buffer_lengthに収まるように調整される。
マニュアルにも記載がある。

クライアント/サーバー通信用のバッファーの初期サイズ。複数行の INSERT ステートメント (--extended-insert オプションまたは --opt

[さらに読む]
第一印象 of gh-ost

TL;DR

インストール

  • releases にrpmパッケージもあるので yum でサクっと入れた。
    • コマンド1個だけが入っているとてもシンプルなパッケージ…
$ sudo yum install -y …
[さらに読む]
1967 件中 591 - 600 件を表示
« 前の 10 件 | 次の 10 件 »