41から始めました

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

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

全く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の字も出ない番外編です 北海道(函館近辺)のおすすめポイントを語ってみる 嫁の実家があるので年末年始で行ってきた 今までにも何度も行ってるんで、函館近辺で良かったとことか雑に紹介してみる 遊 函館の街並み …

" _ " or " % " - Which is faster? (Like predicate in MySQL's sql)

MySQL Advent Calendar 2019 の22日目です。 MySQLのあいまい検索時のLIKEで使える「_」と「%」について調べてみました。 あいまい検索時に使う「_」と「%」 会社でlike 検索した際に「_」と「%」で速度差ってあるのかな?という話になり、 こういうの調べた…

COUNT に「OR NULL」入れるの、正しい結果返すのわかったけど、心がザワザワしてたけど、今はスッキリした。(スゲーッ爽やかな気分だぜ)

タイトルにある話はつまりこう ここに都市名を入れたテーブルがあったとします。 mysql root@127.0.0.1:test> select * from city limit 10; +-----------------+-------------------+-----------+--------------+------------------------+ | prefecture_id…

インデックスマージ、とても良い

MySQLのインデックス 世の中がMySQL8.0.18のハッシュJOINに盛り上がってる中、オジサンは古いけど自分にとっては新しいマージインデックスの話をします。 複数のインデックスがテーブルに作られていても、使えるのは一つ というのがMySQLでは原則ですが、こ…

MySQL Technology Cafe #4参加してきた

昨日行ってきたやつのお話共有します。 松信さん(Facebook)の話がすごすぎて聞いてて頭プスプス言ってた。 それを思い返しながらまたプスプス言ってたんですが、なんとかかきおこしました。 正直、まだ理解が追いついてないです…。 MySQL Technology Cafe …

データを適当に作成するmysql_random_data_loadを試してみた

テストデータ作りたいな 自分で手で作るのもめんどいし、定義変わるとアレ(メンテが必要)やしな。 せや、型から適当にデータ作るツールとかないんかな? あったわ→mysql_random_data_load さすぺる!(さすがPercona!) 試してみよう use test; -- 適当な…

♡♡♡主キー大主キー♡♡♡(MySQL Casual Talks vol.11)

名言生まれる! タイトルにもある大主キーという単語がtwitterのTLに一瞬溢れました。 後日もことあるごとに大主キーという人が続出。 もうこれは今年の流行語対象 (in MySQL)といっても過言ではありません。 MySQL Casual Talksとは? もっと深く浅く、広く…

AWS Loft TokyoのMiddlewares Deep Talks行ってきました

これもあんまりまとめる感じでは無いですが、とりあえず後から追記できる程度には雑記します。 iddlewares Deep Talks(AWS Loft Tokyo) Amazonさんがありがたいことにミドルウェア関連の話≒DB系の話やってくれたんで、目黒のビルに行ってきた。 ぼくらが8.…

Oracle Code 2019最高でした!ありがとうございました!

※勢いで書いて、まとめようとしてなかったので読みにくいと思います。(伝えたいことはタイトルの一行) 今年は参加できたOracle Code。 https://www.oracle.co.jp/events/code/2019/ 毎年この時期なんやかんやあったんだけど、今年は時間取れたし、聞きたい話…

DB設計したいNight #4 そーだいさんと失敗から学びながらDB設計したいnight参加してきました

募集内容 枠名 参加条件 通常参加枠 300円(会場払い) 本購入枠 無料。但し本を持参する 絶対来る枠 300円(会場払い) ブログ枠 無料 最後のブログ枠って、参加報告ブログを書いて資料としてアップするってことかな? とにかく、自分は本購入してる(フフフ、サ…

Changes in MySQL 8.0.16 (2019-04-25, General Availability) を読む(1回目)

リリースノートを読んでみる 英語の勉強もかねてちょっとずつ読んでみる。 Account Management Notes DROP ROLE権限について > Previously, users who had the DROP ROLE privilege could use the DROP ROLE statement to drop locked or unlocked accounts.…

【祝】MySQL8.0.16登場!MySQLはその先に向かう。

とうとう来ました、待望のバージョンが! 僕はdocker-composeで遊んでるのでYAMLに mysql_8.0: image: mysql:8.0.16 と書いて再起動しただけでできましたが、中の人が つ https://t.co/YFNApjZZUk— (@RKajiyama) April 25, 2019 と教えてくれたリンク先にも…

『失敗から学ぶ RDBの正しい歩き方』発刊記念!そーだいさんから直接学ぶ会 に参加してきました

行ってきました 先日、『失敗から学ぶ RDBの正しい歩き方』発刊記念!そーだいさんから直接学ぶ会 に参加してきたのでそのレポートというか雑記です。 https://mixi.connpass.com/event/124948/ 3部構成で、最初にこの会を開いてくれたミクシィの担当者(しょ…

decimal(n,0)の使い道

MySQLの数値型 整数型 (真数値)だと - INTEGER - INT - SMALLINT - TINYINT - MEDIUMINT - BIGINT 固定小数点型 (真数値)だと - DECIMAL - NUMERIC 浮動小数点型 (概数値) - FLOAT - DOUBLE ビット値型 - BIT という風になっています。 社内のDBでdecimal(31…

3つの「れいわ」がMySQLにちゃんと入るか確認しといた

https://qiita.com/tfukumori/items/959ed9c751734b73675fで上がってた話をMySQLで一応調査してみた。 やったこと https://qiita.com/tfukumori/items/959ed9c751734b73675f であがってた文字コード「U+4EE4」と「U+F9A8」、あと「U+32FF」はいずれもMySQLに…

インデックス再構築もレプリケーションされる

インデックス再構築ってレプリケーションされる? 結論としては されます! いやぁ、正直不安だったんですよね。 定義が変わるわけじゃないし、データが飛ぶわけじゃない。 でも、奥野さんのこの記事にもある通り、ALTER TABLEではテーブルコピーしてるわけ…

リストア時の「Access denied; you need (at least one of) the SUPER privilege(s) for this operation」エラー

環境構築時にハマったお話 先日、AデータベースサーバからBデータベースサーバにデータをmysqldump→mysqlコマンドでエクスポート&リストアしました。 ところが Aから取得した "aスキーマ" の一部のオブジェクトがBに正しくリストアされてないことがわかり、…

イコール(=)vs ライク(LIKE) の巻

ある日のこと 社内のHさんから質問が。 外注さんが、文字列である建物名の完全一致検索するときのSQLで `... where building like ? ...` って書いてきたので 「 `=` じゃないのは何故?」って聞いたら↓を意図したと回答がありました。 https://dev.mysq…

MySQLのギャップロックとネクストキーロック

曖昧に理解してるかもと思い、自分の振り返りのために書いてます。 先日書いた記事で作ったデータで説明します。 MySQLのロック 通常、DML実行時に取得されるロックは排他ロックと共有ロックで構成されます。 最初にトランザクションでロックをかけたほうが…

そいつの名はWindow関数

タイトルの元ネタは61巻『そいつの名はディアボロ』より Window関数がMySQL8で使えるようになりました! ワーイ♪☆彡(ノ゚▽゚)ノ☆彡ヘ(゚▽゚ヘ)☆彡(ノ゚▽゚)ノ☆彡ワーイ♪ Window関数って? 他のDBMSではおなじみ(でも、意外とWindow関数って名前は知らないで使ってるかも)の関数…

ジョジョの奇妙なWITHクエリ

(会社で書いたやつの焼き直しだったりする) ワタクシ、とてもジョジョの奇妙な冒険が好きで、今日もジョジョリオン20巻買って会社でご飯食べながら読んでたんですが、 そのジョジョの主人公達を使って、MySQLでは8から入ったCTEを試してみました。 そいつの…