41から始めました

文字通り41歳から始めたブログです。DB(MySQL)を使ってお仕事してるので、DB周りの話を中心に最近始めたこととかをTwitterのノリで書いています。なお、本サイトにおいて示されている見解は私個人の見解であり、所属団体や組織を代表するものではありません。

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

適応ハッシュインデックスについて

はじめに こないだのAdvent Calendar用の記事で適応ハッシュインデックス(AHI)について少し書いたんだけど、今日はそもそもそれってどうやって使ったり見たりするの?って話です。 適応ハッシュインデックスとは?(おさらい) InnoDBのインデックスはクラ…

MyISAMってなんだろう?

はじめに 最近、MyISAMのこと調べる機会が多かったので、今までの人生でMyISAMテーブルを触ることなんてほぼ0だったし、MySQL的には今更な感じもするけどとりあえず書き出してみる。 (殴り書きに近い。あとで調べるときにとっかかりになればと思ってる) なの…

TRUNCATE TABLEがバッファプールを読んでいる

本エントリはMySQL Advent Calendar 2020 の13日目です。 今日はちょっとだけMySQL8.0にアップグレードしとくと良いよ、というネタです。 TRUNCATEよりもDROPとCREATEのほうが性能が良いか? はい、MySQL5.7以前まではDROPと&CREATE のほうがTRUNCATE TABLE…

MySQL ShellのダンプとMDSへのインポート

はじめに 今回はずっと触りたかったMySQL Shellのダンプをやりつつ、 最後は前回作ったMDS相手にインポートしてみようかと思います。 MDSにインポートするためにはociクライアントの設定や、オブジェクトストレージが必要なので、それらを途中で設定していき…

MySQL Database Serviceを触るまでのお話

はじめに MDS(MySQL Database Service)が東京リージョンにも来ました! (^O^) <祝! というわけで、朝4時に起こされたこともあり、時間もできたんで久々にOCIを触ってみたんですが、作りたいものが簡単に作れて楽しかったです。 ただ、公式チュートリアル…

シンキノウ×デ×シルキノウ (CREATE TABLE ... SELECT)

Myリノベ 8.0.21に参加 先日「MySQL Release note でわいわい言う勉強会 8.0.21」に参加してまいりました。 今回も最新のMySQL8.0.21のリリースノートをみんなで見ながら、思いつくままに語る会で、その中で僕は相変わらずROM専ですが参加しておりました。 …

クエリーキャッシュを有効にしたけりゃサーバー再起動

え?何当たり前のこと言ってるの? そう思われた貴方、クエリキャッシュをちゃんと使うか使わないか最初に考えている偉い人ですね。 query_cache_typeをON(1)にするとクエリーキャッシュが有効になるんですが、これ、ドキュメントを読むと少なくともMySQL5…

MySQL5.xではデッドロックだけど8.0では死なないよ

はじめに タイトル通り、MySQL5.x系だとデッドロックになるんだけど、 MySQL8.0だとロック機構が変わってデッドロックにならないよ という組み合わせのお話。 僕はこの話をどっかで見た記憶が無かった(忘れた?)ので 教えてもらったとき結構驚いたんだけど…

パーティションほとんどわからんので触ってみた

パーティショニングしたテーブルの確認方法 MySQL触ってて、実は仕事上では一度も触ったことがなかったパーティショニング。 (だって、色んな人が使えないって言ってたんだもん) だけど、意外と世の中使ってる人は多いので今後のためにもパーティショニン…

【ポエムというか愚痴】おれはソネットをやめるぞ!ジョジョーーーーーッ‼

全くMySQLに関係ない、でも、きっかけは家で仕事するのに不都合だったから起こった身の上の話 光を超越する! オトコは悩んでいた。 家は東京のとある集合住宅、150以上の世帯が住むマンション。 その家の光回線が遅いのである。 回線速度を測ると、1Gbpsを…

MySQL8.0.20で追加・変更されたパラメータを眺める

はじめに MySQL8.0.20で追加・変更されたパラメータをなんとなく眺めてみました。 パラメータの説明については基本的にはドキュメントからの引用です。 変更されたパラメータ一覧 例によってとみたさんのパラメータ比較ツールをお借りしました。 Parameter 8…

MySQLでのテーブルコピー(InnoDBとMyISAM)

MySQLでのテーブルコピーを考える MySQLでテーブルコピー(同一インスタンス内とか別インスタンスとかあるけど)って意外とテストとかちょっとしたリカバリ作業用にしたくなりますよね。 というわけで、InnoDBとMyISAM関連だけですが書き出してみました。 コ…

パフォーマンススキーマの計器の最大登録数について

※追記しました。後述のドキュメントの話は修正されました!(^▽^) 計器(インストゥルメント)とは 計器(インストゥルメント)と呼ばれるコードを通じてMySQL(NDB Clusterを含む)はパフォーマンスに関するデータを取得しています。 取得されたデータはバッ…

ようこそ…『男の世界』へ…(AUTO_INCREMENTが巻き戻るお話)

AUTO_INCREMENTが巻き戻る 今の会社に入るまで知らなかったんですが、結構有名なバグっぽいですね。 AUTO_INCREMENTで採番された番号が、再起動するとMySQL5.7以前は巻き戻る現象が起きる話です。 再現してみる MySQL5.7と8.0にそれぞれ同じテーブルを作って…

MySQL8でCHAR関数がドキュメントどおりになってない

MySQL8でCHAR関数がドキュメントどおりになってない https://dev.mysql.com/doc/refman/5.6/ja/string-functions.html#function_char を読むと、こう書いてある。 CHAR(N,... [USING charset_name]) CHAR() は各 N 引数を整数として解釈し、それらの整数のコ…

MySQL Technology Cafe #7 で『MySQL Shellを使ってみよう』を聞いてからのLinux(Ubuntu)での導入部分

前回Windowsだったので、今回はUbuntuで引き続き初心者向けにライトな感じで導入部分を書いてみました。 1. MySQL APT Repositoryの取得 ここからダウンロード(インストール済の人はスキップ) 2020/1/25現在の最新版はmysql-apt-config_0.8.14-1_all.deb 2. …

MySQL Technology Cafe #7 で『MySQL Shellを使ってみよう』を聞いてからのWindowsでの導入部分

MySQL Shell をWindowsに入れてみる 先日参加してきたMySQL Technology Cafe #7でMySQL Shellって何?どんなことできるの? といった初心者向けの話がされるというので聞いて来ました。 今回はそこから学んだこと、およびハマってしまったWindowsでの設定に…

Percona Serverのマスキング試してみた

MySQLのマスキングをPerconaで使ってみる MySQLのマスキングはEnterpriseEditionでしか使えないが、PerconaServerはそれを無償で使えるように! やるじゃん、ぺるこな! でも使えるのは8.0.17-18バージョンからなので、ごめんね5.7…。 とりあえず、この記事 …

【番外編】北海道(函館近辺)のおすすめポイントを語ってみる

今回は技術的なことはもちろん、MySQLのMの字も出ない番外編です 北海道(函館近辺)のおすすめポイントを語ってみる 嫁の実家があるので年末年始で行ってきた 今までにも何度も行ってるんで、函館近辺で良かったとことか雑に紹介してみる 遊 函館の街並み …