なからなLife

geekに憧れと敬意を抱きながら、SE、ITコンサル、商品企画、事業企画、管理会計、総務・情シス、再び受託でDB屋さんと流浪する人のブログです。

MySQL8.0.21の「Redoログ無効化」で大量書込処理を加速する

7/13 に MySQL 8.0.21 がリリースされました。 リリースノートを読んでいて「Functionality Added or Changed」の3つ目に InnoDB: Redo logging can now be enabled and disabled using ALTER INSTANCE {ENABLE|DISABLE} INNODB REDO_LOG syntax. This funct…

AWS RDSの各種DBにおけるメモリ管理の指定方法

超親切設計な、インスタンスサイズからの自動計算、だけど パラメータグループには、デフォルトでDBInstanceClassMemoryからの自動計算になっていて、インスタンスサイズの変更時に手動でパラメータ変更をする必要がないような超親切設計になっています。し…

「15 Stepで習得 Dockerから入るKubernates」を読んでEC2で演ってみた:(2)各演習(Step)でのメモ

この本、15Stepで習得 Dockerから入るKubernetes コンテナ開発からK8s本番運用まで (StepUp!選書)作者:高良 真穂発売日: 2019/09/27メディア: 単行本(ソフトカバー)半分くらいまでは、DockerとKubernetesについての解説で、後半が15 Stepの演習になってま…

「15 Stepで習得 Dockerから入るKubernates」を読んでEC2で演ってみた:(1)概要と環境構築

やっとkubernetesに手を出した 本職がDB専業、MySQL、PostgreSQL、Oracleの導入、チューニング、移行などの支援がメインということもあり、k8sを使うインセンティブもモチベーションも非常に低かったのです。 しかし、流石にぼちぼち触っておこうと思い、こ…

MySQLのゾンビプロセスの話

エビデンス的なものを貼り付けてもイマイチ伝わらないので、文字通り雑記レベルで。 複数セッション用意してタイミングに依存した実験の結果を伝える時、難しいよね、ってことで、ダラっとした解説になってしまいます。 MySQLのサーバーに重いクエリを投げつ…

PostgreSQLのpsqlで実行時間だけ欲しい場合

用途 時間計測したいけど、結果の行表示とか余計なものは全くいらない、ってケースありますよね。性能検証やってるときとか。何百行何千行も取れるようなSQL流すと、表示するのも萎える。 pager有効だと「--More--」って出て止まる。これは「q」で残りの表示…

新年あけまして2020

毎年年初になんか書いてたっけ? くらいに、中身のあること書いてなかったことを、過去ブログ見て思い返すなど。ブログの更新頻度は、2018年の15本に対して2019年は24本と伸びているのですが、ここ2ヶ月サボってますね。個人的にはOSSベンチマークツール「H…

MySQL8.0.18新機能「EXPLAIN ANALYZE」で外部結合の実行計画が取れなかった件

祝:8.0.18リリース! 今回のメンテナンスリリースは盛りだくさんです。詳細は、リリースノートを読んでいただくか、今度の9/21(月)に更新されるであろうMySQL Weeklyを確認してください。リリース前から話題沸騰だったのは、「NestedLooop一本勝負っだったM…

HammerDBをCLIで使うなど:まとめ、あるいは、目次の代わりに

「10回分の目次」的な何か 2週間平日連載?で10回に分けて書いてきた「HammerDBをCLIで使う」のエントリのリストです。(1)環境構築 (2)MySQLにTPC-Cを実行してみる (3)PostgreSQLにTPC-Cを実行してみる (4)OracleにTPC-Cを実行してみる (5)Re…

HammerDBをCLIで使うなど(10):テストデータをテキストファイルに出力する

DBによっては、データファイルの一括ロードが速いよね OracleのSQL*Loaderとか、MYSQLのLOAD DATAコマンドとか、PostgreSQLのCOPYコマンドとか。 HammerDBのドキュメントの中でも、そういったツールを使うことを推奨しています。そういったツールに読み込ま…

HammerDBをCLIで使うなど(9):OracleにTPC-Hを実行してみる

基本的な流れ 「MySQLにTPC-H」「PostgreSQLにTPC-H」とほぼ一緒です。 対象DBMSとベンチマークの選択 hammerdb>dbset db ora Database set to Oracle hammerdb>dbset bm TPC-H Benchmark set to TPC-H for Oracle 詳細パラメータの表示と設定 hammerdb>prin…

HammerDBをCLIで使うなど(8):PostgreSQLにTPC-Hを実行してみる

基本的な流れ 前回の「MySQLにTPC-H」とほぼ一緒です。 淡々と進めていきましょう。 対象DBMSとベンチマークの選択 hammerdb>dbset db pg Database set to PostgreSQL hammerdb>dbset bm TPC-H Benchmark set to TPC-H for PostgreSQL 詳細パラメータの表示…

HammerDBをCLIで使うなど(7):MySQLにTPC-Hを実行してみる

基本的な流れ ここからは、分析系クエリのベンチマーク「TPC-H」です。 やりかたは、TPC-Cとほとんど同じなので、淡々と進めていきます。 TPC-Hは、定められた22本1セットの分析クエリ(要はMySQLがあまり得意としない複雑でデカイSQL)についての処理性能…

HammerDBをCLIで使うなど(6):自動でテストを繰り返す

TPC-Hの話に行く前に、自動化の件に触れておきたい このHammerDBには、ベンチマークテストを繰り返し自動実行する「Autopilot」機能がついています。 「異なる数のユーザー数で、同じテストを繰り返す」というケースに対応するものです。GUIだと「Autopilot…

HammerDBをCLIで使うなど(5):RedisにTPC-Cを実行してみる

基本的な流れ 流れはやっぱりおなじです。Redisで業務的な意味でのトランザクションを扱うイメージあんまりないですが、ツールとして対応しているので、ためしておきたいなと。 単純性能みるだけなら、redisのパッケージにベンチマークツール「redis-benchma…

HammerDBをCLIで使うなど(4):OracleにTPC-Cを実行してみる

基本的な流れ 流れはMySQLやPostgreSQL同じですが、やっぱりパラメータがちょっと違います。 さっそく順を追ってみていきましょう。 対象DBMSとベンチマークの選択 hammerdb>dbset db ora Database set to Oracle hammerdb>dbset bm TPC-C Benchmark set to …

HammerDBをCLIで使うなど(3):PostgreSQLにTPC-Cを実行してみる

基本的な流れ 流れはMySQLと同じですが、パラメータがちょっと違います。 さっそく順を追ってみていきましょう。 対象DBMSとベンチマークの選択 hammerdb>dbset db pg Database set to PostgreSQL hammerdb>dbset bm TPC-C Benchmark set to TPC-C for Postg…

HammerDBをCLIで使うなど(2):MySQLにTPC-Cを実行してみる

基本的な流れ どのDBに対して、どのワークロードをかける場合でも共通ですが、まずは「MySQLにTPC-C」を実行して、その流れを見ておきます。 GUIで一度経験しておくと、イメージがよりつかみやすいかもしれません。 DB種類選択 ベンチマーク種類選択 スキー…

HammerDBをCLIで使うなど(1):環境構築

TPC-C、TPC-Hワークロードを各種DBMSに対して実行できるベンチマークソフト「HammerDB」 HammerDBは、フリーでOSSなDBMSベンチマークソフトです。 各DB専用に用意されたベンチマークソフトではなく、同じ条件(同じソフト)で負荷をかけて性能を見たいときに…

CentOS + Python3 + Jupyter NotebookでRDBMSに対する分析環境を作る

Jupyter Notebook環境構築エントリとか、世の中に溢れかえっているのは承知の上なんで、ほぼ自分用の備忘です。 未来の自分に語りかけてます。この手順、絶対忘れる。。。 皆さんよく使うゴリゴリのPython+pandasなど各種ライブラリではなく、「RDBMSの中身…

MySQLで直感的じゃない動きをするRAND()とSYSDATE()について

端的にいうと SELECTのWHEREの条件の「右辺」に、RAND()やSYSDATE()のような非決定性関数を使うと、想定外のことが起こる。 戻ってくる行数が想定と異なる。 Indexが効かなくなる。(テーブルフルスキャン走る) どっちもなかなかのインパクトです。 追記:2…

PostgreSQLの拡張機能の有効化(オンプレ/AWS RDS)

OracleともMySQLともちがう、「豊富な拡張」 PostgreSQLの特徴的なところだと思います。 なんなら最初から入っていてくれよ、と愚痴りたくなる程度に、結構めんどくさかったので、備忘録的な意味合いで残しておこうかと。いや、この拡張機能を利用者自らが開…

RDS for MySQLで変更すべきパラメータチューニング

呼ばれたきがしたので soudai.hatenablog.comなお、InnoDB限定のお話ですよ。MyISAMを(システムテーブル以外で)使ったことない若輩者なので。ちょっと余裕がないこともあり、思いつく最小限のことだけ書きます。追加で思いついたら後ほど&温かいフォロー…

PostgreSQLのトランザクション制御でさっそくハマった2点

久しぶりにPostgreSQLの門に入ったので 前に触ったのは、8.1.2~8.1.6くらいだったと思います。その間、非エンジニア業もやってた(企画系および管理系)ので、完全に忘れてた。なので、謙虚に入門したいと思います。 OracleやMySQLから移ってくるにあたって…

MySQL 8.0.14でSELECT COUNT(*)は、バッファに載っていても載っていなくても加速する! - 「innodb_parallel_read_threads」検証その5

MySQL 8.0.14でSELECT COUNT(*)が加速する!- 「innodb_parallel_read_threads」検証その1 - なからなLife MySQL 8.0.14でSELECT COUNT(*)が加速しない!- 「innodb_parallel_read_threads」検証その2 - なからなLife MySQL 8.0.14で全件 COUNT(*)でも加速…

MySQL 8.0.14でSELECT COUNT(*)がパーティションテーブルでも加速する! - 「innodb_parallel_read_threads」検証その4

ココまでのおさらい MySQL 8.0.14でSELECT COUNT(*)が加速する!- 「innodb_parallel_read_threads」検証その1 - なからなLife MySQL 8.0.14でSELECT COUNT(*)が加速しない!- 「innodb_parallel_read_threads」検証その2 - なからなLife MySQL 8.0.14で全…

MySQL 8.0.14で全件 COUNT(*)でも加速しない!?- 「innodb_parallel_read_threads」検証その3

MySQL 8.0.14でSELECT COUNT(*)が加速する!- 「innodb_parallel_read_threads」検証その1 - なからなLife MySQL 8.0.14でSELECT COUNT(*)が加速しない!- 「innodb_parallel_read_threads」検証その2 - なからなLife の続きです。まさかの、ネガティブ情…

MySQL 8.0.14でSELECT COUNT(*)が加速しない!- 「innodb_parallel_read_threads」検証その2

「その1」と真逆のタイトル atsuizo.hatenadiary.jp の続きです。要するに、innodb_parallel_read_threadsの効果がないケースの話です。いや、思った以上に、効果がない。。。 というわけで、暗い感じのスタートになりましたが、前回の続きで 「3.「innodb_…

MySQL 8.0.14でSELECT COUNT(*)が加速する!- 「innodb_parallel_read_threads」検証その1

それは突然やってきた MySQL 8.0.14がGAされました。dev.mysql.comまあ、MySQLは結構な頻度でリリースがありますし、「GAとはなんぞや」との名言が生まれる程度に、マイナーリリースでも機能が増える、パラメータが増える、既存パラメータのデフォルト値が変…

Linux on VirualBoxな環境でルートボリュームが足りなくなったときの対処方法

後で「やっぱ足りない」ってなるのが、ゲストマシンのストレージ割り当て なれてないと、躓くところが2点ありますね。<自分・VirtualBoxの仮想ストレージ自体を増やす ・ゲストマシンのOSから、増やしたストレージを認識させるたまにしかやらないので、すぐ…