なからなLife

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

2019-01-01から1年間の記事一覧

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から、増やしたストレージを認識させるたまにしかやらないので、すぐ…

新年あけまして2019

例年通り 休み=家族にふりまわされサービスやら帰省やらで、振り返りも展望も整理できない日々です。 2017年末の家庭内インフルエンザ・ラッシュは2018年末にはなく、クリスマスの週末に一人微熱を出し、年末最後の仕事に影響出さないように連休中は一人布…