EasyRamble は、技術ネタや子育て、英語学習、アウトドアなどについて綴るブログです。Ruby on Rails や Swift などで、Webサービス/アプリを作っています。
B-treeがMySQLで使用されている背景から、B-treeインデックスの構造、そしてそれに基づいたインデックスの使用方法の入門編です。以下の流れに沿ってまとめていきます。 インデックスってなに? B-treeってなんでインデックスに使われているの? B-treeインデックスの構造 インデックスの使用方法 ※ 勉強をかねてまとめていることもあり、間違っている箇所がございましたら教えていただけると嬉しいです。 インデックスってなに? 全体の内容の中から特定部分を探すために使用する、本の索引のような概念のことです。これを用いることで、検索を高速化することができます。 特定の項目が本のどこに載っているかを確認するために索引を調べることで、全ページを順に調べなくても、その項目が登場するページ番号がわかる MySQLのストレージエンジンでも、インデックスが同様の方法で利用されており、インデックスの
MySQL即効クエリチューニング ThinkIT Books 作者:yoku0825インプレスAmazon 最近クエリチューニングの仕事があったので、少し深めに知ろうと読んだ。 MySQLの内部構造がどうなっているかは置いておいて、どうすればクエリの問題を把握できるかが素早く知れる良い本だった。90ページくらいですぐ読めるのも良い。個人的にはHandler_%変数を使った調査、innotopによる状況可視化、sys.innodb_lock_waitsによるロック状況の可視化あたりが非常に参考になった。 ちなみにさらに内部構造に踏み込んで理解しようとするなら、以下の記事がおすすめ。 雑なMySQLパフォーマンスチューニング MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ Rails Developers Meetup 2018 で
よく訓練されたアップル信者、都元です。今回はMySQLのクライアント負荷エミュレーションツールmysqlslapを使って、Amazon RDSの性能を測定してみました。 このエントリーの初期版では、クライアントのEC2インスタンスサイズをsmallにしていましたが、クライアント側がボトルネックにならないよう、m3.2xlargeで再測定しています。また、測定回数(iterations)も、初期版では1でしたが、現在は10回の平均を取った数値で再測定しています。 Amazon RDSではdb.t1.microからdb.m2.4xlargeまで様々なインスタンスクラスが選択できます *1。それぞれCPUやメモリの他、I/O性能も「低速」「標準」「高速」といった差別化がはかられています。 とは言え、それぞれのインスタンスクラスにおいて、総合的なパフォーマンスはどの程度なのか、気になりますよね!
So many times I have been asked for help with a query, where the question really comes down to the understanding of the difference between INNER and LEFT or RIGHT JOINs. I created this poster a few years ago and I keep it posted on the wall at the office. This way when I am trying to explain JOIN types, I just refer to the poster. I have created the poster below to help describe JOIN types in My S
読者対象 ANSI 定義の古典的なトランザクション分離レベルとアノマリーは概ね理解している MySQL/Postgres では理論的な部分がどうなっているのかを知りたい 理論面の前提知識 2022-08-19 追記: 社内勉強会向けのスライドを作成しました。先にスライドを見てから,引用文献およびこの記事を読むと理解が深まると思います。 まず ANSI 定義の古典的な定義を聞いたことが無い方は,以下のリンクを参照されたい。 ANSI 定義に対応する解説はこれらのサイト以外にもたくさんあるため,自分にとって読みやすいと感じる情報をあたってほしい。(既に熟知されている方は十分) 次点で読んでいただきたいのが, @kumagi さんの以下の記事。古典的には 4 つの分離レベルと 3 つのアノマリーだけで説明されていたものの,不十分であることが学術的に指摘され,解像度を上げようとする流れが後になって
[MySQL][ERROR] Fatal error: Please read “Security” section of the manual to find out how to run mysqld as root!と言われた時の行動MySQLCentOSmysql5.7errorMessage 概要 レンタルしているサーバーがメンテナンスされることになったため、サーバーを一時停止。 メンテナンス後、サーバーを起動したらなぜかMySQLが起動していない・・・ ログを見てみても、一時停止まではログに記載されていて、それからの再開処理はどこにも書かれてない・・・ とりあえず直接コマンドをたたいて(sudo mysqld)みたところ、以下のことを言われます。 [ERROR] Fatal error: Please read “Security” section of the manual
小ネタです。 踏み台サーバであるAmazon Linux2にMySQLのクライアントを入れRDSを操作しているのですが、ある日yum updateをしたら途中で停止してしまいました。 エラーメッセージを眺めるとMySQLをアップデートする際にGPGが原因でコケているっぽい。 $ sudo yum update (中略) warning: /var/cache/yum/x86_64/2/mysql57-community/packages/mysql-community-libs-5.7.37-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql から鍵を取得中です。 The GPG keys listed for t
概要 本項ではデータベースサーバー「MySQL Server 5.7」を、パッケージ管理ツール「Homebrew」を利用して macOS にインストールする手順について解説します。 MySQL5.7を検索しよう まずは Homebrew で MySQL 5.7 が提供されていることを確認するために、brew search コマンドを利用して検索してみます。 次のように mysql@5.7 を指定して検索してみましょう。 次のように Formulae に mysql@5.7 と表示されればOKです。 $ brew search mysql@5.7 ==> Formulae mysql@5.7 MySQL5.7をインストールしよう Homebrew で MySQL5.7 が提供されていることが確認できたら、さっそくインストールしてみましょう。 次のように brew install コマンドに
はじめに 今回はMySQL 8.0について以下の内容を紹介します。 なぜ、バージョン5から8に一気に上がったのか Charsetとは何か Collationとは何か Youtubeでも解説しているので、ぜひ確認してみてください。 【YouTube動画】MySQL8.0 MySQLの名前の由来 MySQLは共同創設者のMichael Widenius (通称 Monty) さんの長女 Myにちなんで名付けられました。 ちなみに、MySQLをベースに、完全なGPLライセンスにしたMariaDBは、次女のMariaにちなんでいます。 [参考] Why is the Software Called MariaDB? MySQLがバージョンアップで5から8に上がった理由 MySQL 6.0はストレージエンジンにFalconを搭載したものを作っていたそうです。 しかし、Falconではなく、InnoD
前書き 検証のため開発環境RDSを端末から繋ぎたいということがある。 (通常はproxy経由で接続してもらったりしているのだが、それもできない場合) その時の設定手順とハマるポイントをまとめたので記載します。 設定手順 今回はDBのクローンで作ります クローンの作成を選択 ネットワーク&セキュリティを設定 サブネットグループ: publicアクセス可能なものを選択 パブリックアクセシビリティ: はいを選択 セキュリティグループ インバウンドで3306ポート(MySQLなら)を接続可能にしたセキュリティグループを設定します この時ソースを0.0.0.0/0にすることは絶対にやめましょう 信頼できるIPからのみ接続可能にしてください 確認 digコマンドでRDSのエンドポイントにGIPが設定されていることを確認しましょう
MySQL5.7以降では初期パスワードが自動で生成される様になっており、以前のようにパスワードなしでMySQLに接続することができません。 初期パスワードのありかを解明するのに変に時間を使ってしまったので共有しておきます。 確認した環境(MySQLがインストールされているサーバー) CentOS7 Apache 2.4 MySQL 5.7 初期パスワードはログから探す MySQLの初期パスワードは初回起動時に自動的に生成されます。 しかし、サーバーの中を探しても「これがMySQLのパスワードですよ」というようなあからさまなファイルは存在していません。 では、どこにあるのか? じつは、MySQLのログに残っています。 MySQLを実行するmysqldというプログラムはlogを残すようになっており、そのlogの中に初期パスワードも混ざっています。 mysqldのログファイルの場所
1. MySQLリポジトリを追加し、MySQLをインストール はじめに、CentOS 7.1にMySQLをインストールするために公式サイトからリポジトリ追加していきます。 $ sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm $ sudo yum install -y mysql-community-server $ mysqld --version # mysql server のバージョンを確認 mysqld Ver 5.7.12 for Linux on x86_64 (MySQL Community Server (GPL)) $ mysql --version # mysql client のバージョンを確認 mysql Ver 14.14 Distrib 5.7.1
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く