MySQLのストレージエンジンの一種。標準ストレージエンジンのMyISAMと違いは以下の通り
2024 Mar. 31. 出典 : MySQLサーバのストレージエンジン確認方法 #MySQL - Qiita MYDATABASE内のテーブルのストレージエンジンを確認する例 mysql > use information_schema ; mysql > select table_schema, table_name, engine from tables where table_schema = 'MYDATABASE ;
はじめに システム事業部堤田です。 前回、業務で発生したdeadlockの原因について調査を行い、調べた内容についてブログにて整理を行いました。 今回は、前回の記事では記載しきれなかったインテンションロックについて記載をしていきます。 この記事にて、自身の理解を深めると供に同じように困っている人の一助になれば幸いです。 前回の記事:deadlock発生時の読み解き方(mysql5.7) 今回の記事で、実際発生したdeadlockのログについての解説も行う予定でしたが、その解説に必要なMySQLの用語の整理を含めると記載量が多くなりましたので分けることにしました。 deadloockログを読み解…
こんにちは。 ATOM事業部の田村です。 今回は、MySQL の高速化の手段として、InnoDB エンジンをオンメモリで使った場合のパフォーマンスについて調査してみました。 はじめに MySQL には InnoDB エンジンだけではなく、他にもいくつものストレージエンジンがあります。 その中でも MEMORY エンジンは、その名の通りデータをメモリ上に持つため、処理が極めて高速という特徴があります。 ただし InnoDB とはいろいろ違う部分があり、InnoDB で使えていた SQL がそのまま通るわけではありません。 単に「高速化したい場合は InnoDB の代わりに MEMORY エンジン…
DBのロックについて考える際にTransaction Isolation Levelsを確認することはよくあると思いますが、バックエンドを触ってない期間が長くなると細かい部分を忘れてしまうのでまとめてみました。
tm-progapp.hatenablog.com ↑の記事にてInnoDBのロックについてまとめましたが、公式ドキュメントを読み漁る中で「locking read」と「non-locking read」という言い回しがあり、気になったのでまとめてみました。 MySQL :: MySQL 8.0 Reference Manual :: 15.7.2.4 Locking Reads locking readとは non-locking readとは メリット デメリット 参考 locking readとは SELECT ... FOR SHARE, SELECT ... FOR UPDATE時の…
こんにちは。id:shallow1729です。最近Database Reliability Engineerというお仕事を始めたのでデータベースの勉強をしたりMySQLのソースコードを読んだりしています。仕事でMySQLが標準で用いているInnoDBのソースコードを読む機会があったのでなんかアウトプットしたいなと思いつついきなりコアな話するのもなって思ったのでざっくりとストレージエンジンの話をしようかなと思います。とはいえストレージエンジンは本当にいろいろな仕事をしていて全部を書こうとするとものすごい事になりそうだった(+僕も分かってない部分が多い)ので、とりあえず第一回はredo logとい…
こんにちは。アーキテクト見習いエンジニアの小池です。 年の瀬ですね。弊社は今日が最終業務日です。 掃除がてら今年あったことを何か記事にしておこうと思います。 とあるシステムでデータベースのデッドロックが原因のエラー調査をすることになり、普段データベースをガッツリ触らない僕にとって、この調査をすること自体が非常に勉強になったので記事にします。 そのシステムのデータベースは Amazon Aurora MySQL (InnoDB) なのですが、これまで SQL Server を使ったシステムに関わることが多かったので両者の違いも感じられました。 テストテーブル 実際のテーブルはお見せできないので、…
my.cnf で、innodb_log_file_size の値を変更した際は、InnoDBログファイルを削除しないとエラーになる。 前に起動していた時に作成されたログファイルのサイズと、今回定義されたサイズが合わない、ということでエラーになる。 130128 09:04:03 mysqld started InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes InnoDB: than specified in the .cnf file 0 67108864 bytes! 130128 9:04:…
昨日から YAPC::Hakodate 2024 に参加していました。今回は何も書き残すつもりはなかったのですが、せっかく会社のお金で来させてもらっているので何か収穫を持って帰らねばと思っていたら手元にメモができたので、未来の自分のためにも公開して残しておきます。 10/4 前夜祭 デジタルIDウォレットが切り開くHigh Assurance Identity Proofingの未来 / kokukuma さん high assurance identity proofing wallet を使った認証 iOS / android credential manager どんな身元確認か、仕組み…
こんにちは。スマートバンクのサーバーサイドエンジニアをやっておりますid:moznionです。 すっかり秋めいてきましたね。秋といえばMySQL*1、ということで今回は先日解消した「MySQLのロックに起因するブロックタイムアウト」のトラブルシューティングついて記していきたいと思います。 事の発端 ある時を境にSentryに ActiveRecord::LockWaitTimeout というエラーがしばしば報告されるようになっていました。 SentryにActiveRecord::LockWaitTimeoutが上がってきている様子 Mysql2::Error::TimeoutError: L…
概要 こんにちは、スタンバイで求人の取り込みシステムの開発・運用を担当している池田です。 スタンバイでは、求人データのマスターデータ管理に Aurora MySQL を使用しています。 運用開始から3年以上が経過し、その間にシステムは成長を続けてきましたが、それに伴いコストも徐々に増加していました。特に2024年は円高の影響も相まって、Aurora MySQL のインフラコストは、ますます大きな課題となりました。 実は2023年にも、Aurora MySQLのコスト削減を目指し、多くのRead操作をDynamoDBに移行することで、大幅な削減に成功しました(詳しくはこちらの記事をご覧ください)…
はじめに インストール環境 事前準備 mungeインストール、設定 MariaDBインストール、設定 Slurm rpmパッケージ作成 Slurm rpmパッケージインストール・セットアップ テストジョブの実行 はじめに Slurmは、高性能計算クラスタのジョブスケジューラで、効率的なリソース管理とジョブ実行を提供します。 スケーラブルで、柔軟な設定が可能、オープンソースでコミュニティサポートも充実しています。 弊社のワークステーションにも標準でインストールされますので、ご購入後すぐにご利用いただけます。 Slurmではジョブスケジューリング、リソース管理、ジョブの監視と管理などが行え、様々な…
ドジャース 大谷翔平 大リーグ史上初 50本塁打 50盗塁達成 | NHK インデックスとは何?MySQL(InnoDB)とPostgreSQLのインデックスの違いとは?調べてみました PlayStation®30周年を懐かしいデザインで祝う特別モデルのPS5®が登場! 「計算機アプリ作って」→AI「あいよ」 20万個以上のアプリが開発される ヒドラ - 川端イユ | 少年ジャンプ+ 歌詞と検閲:“Parental Advisory”が生まれる切っ掛け“汚らわしい15曲”とミュージシャンの反応 石破茂氏、国政選挙などの投票義務化を提起 自民党総裁選候補そろったネット番組で 「学歴がない人が肉体…
MySQLでOPTIMIZE TABLEについて OPTIMIZE TABLEの使用方法 使用する場面 テーブルの種類とOPTIMIZE TABLE パフォーマンスへの影響 結果の確認 MySQLでOPTIMIZE TABLEについて MySQLでOPTIMIZE TABLEは、テーブルのパフォーマンスを改善するために使用されるコマンドです。 特に、頻繁な更新や削除が行われるテーブルでは、データの断片化が発生し、クエリの速度が低下する可能性があります。 この断片化を解消し、テーブルを再構築することで効率的なデータアクセスを可能にするのがOPTIMIZE TABLEの役割です。 OPTIMIZE…
MySQLでINSERT時にロックをかける方法 1. トランザクションを使用したロック 2. 明示的なロック 3. 行レベルのロック 4. デッドロックの回避 まとめ MySQLでINSERT時にロックをかける方法 MySQLでINSERT時にロックをかける方法は、主にトランザクションとロックメカニズムを使用することによって実現します。 MySQLにはいくつかの異なるロックの種類があり、INSERT文を安全に実行し、データの整合性を保つためにこれらを適切に使用することが重要です。 1. トランザクションを使用したロック MySQLでデータの整合性を保ちながらINSERTを実行するための最も基本…
目的 今回は Windows の VirtualBox + Vagrant の使い方を勉強しつつ、手元環境に小さい構成でいいので Zabbix、Zabbix Proxy 監視対象が動く構成を作りたい。 構築環境 構築する構成要素は以下の感じ。 これだけあれば Zabbix の各種機能をいじることができると思う。 Zabbix Server Alma Linux 8 Zabbix Server 6.0 LTS Zabbix Proxy OS 検討中 Zabbix Proxy 6.0 LTS Linux:SNMP Agent として動作させる予定 Zabbix Agent net-snmp snm…
MySQLでダンプデータをインポートする方法 1. 前提条件 2. データベースの作成 3. ダンプデータのインポート手順 a. MySQLコマンドラインでのインポート b. MySQL Workbenchでのインポート c. phpMyAdminでのインポート 4. インポート時の注意点 5. エラーが発生した場合の対処法 MySQLでダンプデータをインポートする方法 MySQLでダンプデータをインポートする方法は、バックアップやデータ移行の際に有用です。 MySQLダンプファイル(通常は.sql形式)は、データベースの内容を保存したテキストファイルです。 このファイルをインポートすることに…
# pkg install mysql84-server # /usr/local/etc/rc.d/mysql-server start /usr/local/etc/rc.d/mysql-server: WARNING: failed precmd routine for mysql (確認) 2024-09-13T03:07:37.808906Z 1 [ERROR] [MY-012576] [InnoDB] Unable to create temporary file inside "/var/db/mysql_tmpdir"; errno: 13 (修正) # chown mysql…
AI在庫管理の開発チームでバックエンドエンジニアをしている沖です。今回は、AI在庫管理の医薬品検索において、MySQLの全文検索機能を使った話を紹介しようと思います。 この記事は秋の技術特集 2024の 8 記事目です。 今までの医薬品検索では満足できないユーザーがいた なぜMySQLの全文検索機能を採用したのか 全文検索機能を導入する 全文検索インデックスを付与したテーブルを作成する パーサー 照合順序と正規化 全文検索インデックスを使用して検索する データを最適な状態に保つために おわりに 今までの医薬品検索では満足できないユーザーがいた AI在庫管理には、医薬品の在庫一覧画面など、医薬品…
Laravelで作った年表を復活させたい まずはmariaDB(mysql)をインストール。 www.server-world.info $ sudo dnf -y install mariadb-server 必要なリソースは(古いfedora30から)新環境fedora40に全部移動しておいた。 httpdには必要なAliasを切ってある。 さてLaravelのインストールってどうやるんだっけ。 idroot.us min117.hatenablog.com Laravel インストール dnf update あんまやりたくないんだけどなぁ。 $ sudo dnf clean all $ …
MySQLで外部キーを設定する方法 1. 外部キーの役割 2. 外部キーを設定するための前提条件 3. 外部キーの設定方法 3.1. 新しいテーブルを作成する際に外部キーを設定する 3.2. 既存のテーブルに外部キーを追加する 4. 外部キーの制約オプション 5. 外部キーの削除方法 まとめ MySQLで外部キーを設定する方法 外部キー(Foreign Key)は、データベースのリレーショナル構造を強化するために使用され、テーブル間の関係性を確保する仕組みです。 外部キーを設定することで、参照整合性(referential integrity)を保証し、関連するデータの一貫性を維持できます。 …
AlpacaHack Round 2 (Web)へ参加しました。そのwrite-up記事です。
https://alpacahack.com/ctfs/round-2 Single LoginはCTF初学者向けに割と細かく書きました。 Simple Login ソースコード読み SQL Injection SQL Injectionを利用して別テーブルから情報を持って来る CaaS Simple Login pythonで書かれたwebサイトが与えられる。初手何をするかであるが、ソースコードが与えられているのでソースコードを読んで脆弱性を探していこう。サイトを巡回して脆弱性を探してみてもいいのだが、ソースコードが提供されている場合はソースコードを読んでサイトの機能や脆弱性、フラグの場所を…