サクサク読よめて、アプリ限定げんていの機能きのうも多数たすう!
トップへ戻もどる
画が力りょくアップ
shallow1729.hatenablog.com
はじめに collationとは二ふたつの文字もじの間あいだの順序じゅんじょを定義ていぎするものです。こう言いわれるととても単純たんじゅんに聞きこえるのですが、MySQLのcollationの詳細しょうさいな動作どうさは実じつは結構けっこう複雑ふくざつです。 この記事きじはcollationの挙動きょどうに関かんする体系たいけい的てきな解説かいせつと様々さまざまな具体ぐたい例れいを元もとにcollationに対たいする理解りかいを深ふかめ、collationの問題もんだいのトラブルシューティングの筋道すじみちを立たてる事ことを目的もくてきとしています。なお、この記事きじは大おおまかなcollationの動作どうさの説明せつめいを目的もくてきとしており、全すべてを網羅もうらしているわけではありません。詳細しょうさいな動作どうさはMySQLの公式こうしきドキュメントの方ほうが丁寧ていねいですので実際じっさいのトラブルシューティングではドキュメントもご活用かつようください。 なお、この記事きじでの検証けんしょうはMySQL8.0.31を利用りようしています。 collationの基礎きそ collationは冒頭ぼうとうで説明せつめいしたように二ふたつの文字もじの順序じゅんじょ関係かんけいや同値どうち関係かんけいを決きめるものです。collat
はじめに こんにちは、id:shallow1729です。小しょうネタですが、先日せんじつ”ERROR 1412 (HY000): Table definition has changed, please retry transaction”というエラーに出会であったのでそれの調査ちょうさをします。MySQL8.0.31をベースにします。 エラーの意味いみ まずエラーメッセージで調しらべると以下いかの公式こうしきドキュメントが出でてきました。 https://dev.mysql.com/doc/refman/8.0/en/innodb-consistent-read.html Consistent read does not work over ALTER TABLE operations that make a temporary copy of the original table and delete the original ta
こんにちは、id:shallow1729です。最近さいきんはインフラ寄よりなお仕事しごとをよくやっていますがこれまでにいくつかデータ移行いこうやデータ基盤きばん構築こうちくなどのバッチ処理しょりのお仕事しごとをしてきました。以前いぜんにも一いち度どそういった経験けいけんを元もとに記事きじを書かいたのですが、MySQLやシステムに関かんする知識ちしきが以前いぜんよりも増ふえた今いまもう一度いちど書かき直なおしたいなと思おもいました。 なので今回こんかいはバッチ処理しょりを書かく時ときのテクニック2022版はんという感かんじです。今いまの仕事しごとの関係かんけいでMySQLやrailsを前提ぜんていにしている話はなしが多おおいですが、おそらく他たのデータベースを使つかっている人ひとにも役やくに立たつ話はなしが多おおいのではないかと思おもいます。ただ、今回こんかいの記事きじは経験けいけんに基もとづくものが多おおく、あまりよくないアイデアもあるかもしれません。改善かいぜん点てんや間違まちがいなどあればご指摘してきください。 冪べき等とう性せいを持もつように 冪べき等とう性せいとは端はし的てきに言いえばある操作そうさを複ふく数すう回かい実行じっこうしても一いち回かいしか実行じっこうしなかった時ときと同おなじ結果けっかになる性質せいしつの事ことです。長時間ちょうじかんかか
こんにちは、id:shallow1729です。この記事きじはMySQL Advent Calendar 202119日にち目めのものです。昨日きのうはid:next4us-tiさんでMySQL8.0を再さい起動きどうするとアプリからつながらなくなる理由りゆうでした。インターネットって情報じょうほうはたくさんあるけど分わかってないと検索けんさくできないケースが多おおいと思おもっていて、ユーザーの立場たちばに立たって記事きじを書かいているというのが伝つたわってすごくいいなと思おもいました。僕ぼくも会社かいしゃのMySQlを8系けいにする時ときのトラブルシューティングをうまくやるために参考さんこうにしようと思おもいます。 今回こんかいはpt-online-schema-changeを自分じぶん向むけに改造かいぞうした話はなしです。 pt-online-schema-change(pt-osc) pt-oscはカラムのデータ型がたの変更へんこうのようなオンラインDDLが使つかえないalter tableをオンラインで行おこないたいケースなどに使つかえるツールです。
こんにちは、shallow1729:detailです。今回こんかいは先日せんじつMyNA会かいというイベントで発表はっぴょうしたMySQLの標準ひょうじゅんのストレージエンジンであるInnoDBのMVCCのガベージコレクションについて書かこうと思おもいます。発表はっぴょう自体じたいもアーカイブされているので以下いかから見みる事ことができます。 「日本にっぽんMySQLユーザ会かい会かい(MyNA会かい) 2021年ねん07月がつ -下位かいレイヤ勉強べんきょう会かい-」 公開こうかい版ばん - YouTube まず前半ぜんはんではMVCCに関連かんれんするデータ構造こうぞうを見みながらガベージコレクションの重要じゅうよう性せいやlong-running transactionの問題もんだい点てんについて解説かいせつします。後半こうはんでは実際じっさいのガベージコレクション(purge)の処理しょりをソースコードレベルで追おいながら、ユーザーに提供ていきょうされているパラメーターを解説かいせつをします。 これまでに比くらべると踏ふみ込こんだ話題わだいなのであまり基礎きそ的てきな事ことは解説かいせつしません。知しらない単語たんごが多おおいかもしれないですが、適宜てきぎ調しらべな
こんにちは。id:shallow1729です。先日せんじつはredo logを中心ちゅうしんにストレージエンジンについて解説かいせつを行おこないましたが、今回こんかいは同時どうじ実行じっこう制御せいぎょ、特とくにMySQLなど多おおくのデータベースで採用さいようされているMultiversion Concurrency Control(MVCC)という技術ぎじゅつにフォーカスしようと思おもいます。 今回こんかいの記事きじではまず前半ぜんはんでMVCCというものがどういうものかについて解説かいせつをして、次つぎにMVCCの実装じっそう方法ほうほうについてInnoDBの実装じっそうを参考さんこうにしながら見みていこうと思おもいます。前提ぜんてい知識ちしきはあまりいらないと思おもいますが、リレーショナルデータベースの操作そうさ経験けいけんはあったほうがいいかなと思おもいます。また、前回ぜんかいのストレージエンジンの解説かいせつで述のべた内容ないようはあまり説明せつめいしないので、軽かるく目めを通とおしてもらえると頭あたまに入はいりやすいかなと思おもいます。 shallow1729.hatenablog.com トランザクションの原子げんし性せい まずトラ
こんにちは。id:shallow1729です。最近さいきんDatabase Reliability Engineerというお仕事しごとを始はじめたのでデータベースの勉強べんきょうをしたりMySQLのソースコードを読よんだりしています。仕事しごとでMySQLが標準ひょうじゅんで用もちいているInnoDBのソースコードを読よむ機会きかいがあったのでなんかアウトプットしたいなと思おもいつついきなりコアな話はなしするのもなって思おもったのでざっくりとストレージエンジンの話はなしをしようかなと思おもいます。とはいえストレージエンジンは本当ほんとうにいろいろな仕事しごとをしていて全部ぜんぶを書かこうとするとものすごい事ことになりそうだった(+僕ぼくも分わかってない部分ぶぶんが多おおい)ので、とりあえず第だい一いち回かいはredo logというやつを中心ちゅうしんにストレージエンジンを追おっていこうと思おもいます。なるべく一般いっぱん的てきなデータベースの設計せっけいの話はなしを軸じくに置おきつつInnoDBの場合ばあいの話はなしもしていこうと思おもいます。読者どくしゃとしてはMySQLのようなリレーショナル
こんにちは。id:shallow1729です。先日せんじつ一いちヶ月かげつぐらいの工数こうすうのかかる大おおきめのタスクを担当たんとうしました。そのタスクは機能きのうに関連かんれんするテーブルやエラーになる条件じょうけんが多おおく、初はじめはどこから手てをつけたらいいか分わからない状態じょうたいでした。今回こんかい紹介しょうかいする契約けいやくによる設計せっけいとテスト駆動くどう開発かいはつは自分じぶんがうまくとっかかりを見みつけて手てを進すすめる上うえですごく役やくに立たった開発かいはつ手法しゅほうです。うまく実装じっそうを進すすめられない時ときとかに思おもい出だしてもらえたらと思おもいます。 大おおきいタスクの難むずかしさ これはエンジニアとしての経験けいけん則そくですが、規模きぼの大おおきい機能きのうの開発かいはつはたとえそこにアルゴリズム的てきな困難こんなんさを伴ともなわなくても難むずかしいものになるように思おもいます。 もちろん全体ぜんたいのアーキテクチャを考かんがえるには設計せっけい手法しゅほうの理解りかいが必要ひつようですし、関連かんれんするツールが増ふえるとそれらの理解りかいが必要ひつようだったりするので技術ぎじゅつ的てきな課題かだいに直面ちょくめんしやすいというのも事実じじつだと思おもいますが、実際じっさいに開発かいはつをしている中なかでそういう技術ぎじゅつ的てきな課題かだい感かん
2022/03/19 追記ついき 続編ぞくへんみたいなやつ書かきました。 shallow1729.hatenablog.com はじめに メリークリスマス!! はてなのエンジニアのid:shallow1729です。この記事きじははてなエンジニア Advent Calendar 2019の25日にち目めの記事きじです。昨日きのうはid:hitode909さんの以下いかの記事きじでした! blog.sushi.money 今回こんかいはタイトルにある「異ことなるシステム間あいだでの大量たいりょうデータの同期どうき」について、仕事しごとでいくつか関かかわったので悩なやんだ事ことをログに残のこそうと思おもいます。一緒いっしょに難むずかしいねって笑わらってくれたら嬉うれしいです。 「異ことなるシステム間あいだでの大量たいりょうデータの同期どうき」って何なにのこと? これは自分じぶんがつけた名前なまえなのですが、例れいとしてはシステムを完全かんぜんにリニューアルするとかでDBのスキーマを再さい設計せっけいしたシステムにデータを移うつすような場合ばあいや、あるシステム上じょうの大量たいりょうのデータをスプレッドシート
このページを最初さいしょにブックマークしてみませんか?
『shallowな暮くらし』の新着しんちゃくエントリーを見みる
j次つぎのブックマーク
k前まえのブックマーク
lあとで読よむ
eコメント一覧いちらんを開ひらく
oページを開ひらく