タグ

インデックスに関するtobibako45のブックマーク (6)

  • MySQLパフォーマンスチューニングのためのインデックスの基礎知識 - 久保清隆のブログ

    仕事MySQLのパフォーマンスチューニングをしていて、インデックスについて分かっていないことが多かったので調べたことをメモ。基的なところから学習しなおした。 MySQLのインデックスは、カラムが特定の値をもつレコードの迅速な検索に使用される。インデックスを使用すれば、数百とか数億ものレコードが入っているテーブルから、一組のレコードを迅速に見つけて取り出すことが可能になる。 しかし、インデックスは速度を改善することもあるが、挿入の邪魔になって遅くなることもある。 インデックスを適切に使うために、まずはインデックスの基概念をおさえる必要がある。 インデックスの概念 インデックスとは インデックスの仕組みを理解するには、まずMySQLがどのようにクエリに応答するかを知る必要がある。 例えば、 SELECT * FROM phone_book WHERE last_name = 'Hoge'

    MySQLパフォーマンスチューニングのためのインデックスの基礎知識 - 久保清隆のブログ
  • MySQL初級者を脱するために勉強してること -INDEX編- - Qiita

    欲しいデータを取得するくらいにはSQL書けるし、システム要件を満たすくらいにはテーブル設計は出来る、そんな僕が中級者を脱するために勉強している内容を備忘録的に書き綴ります。 予約語は大文字 その他は小文字で記述しています。 あー、インデックスね、はいはい。作ると参照が速くなるやつでしょ? そのくらいの知識でしたが、INDEXを適切に運用する上で原理など理解していないと、意味の無いINDEXを作ってしまう事があるので勉強しました。 INDEXとは 今回は多くのRDBMSでサポートされているB-TreeINDEXについて解説します。 B-Treeは以下のような形式でデータを保持しています。 ヘッダブロックでは大まかな値の範囲を保持しており、ブランチブロックではさらに細かい範囲を保持 リーフブロックでは実際の値と行への物理的な位置を保持しています。 INDEXが作成されている事で並び替えが速くな

    MySQL初級者を脱するために勉強してること -INDEX編- - Qiita
  • MySQLのインデックスの効果を理解する - すぎゃーんメモ

    CREATE TABLE `fuga` ( `id` int(10) unsigned NOT NULL auto_increment, `category` int(11) NOT NULL, `name` varchar(40) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; のようなテーブルを用意して、0〜9999までのランダムなcategoryで適当なnameを含むデータを30万件ほど突っ込んでみる。1つのcategoryあたり30件くらい取れる計算。 普通にwhereでcategoryを指定して取ると結構遅い。はかってみる。 #!/usr/bin/perl use strict; use warnings; use DBI; use Benchmark 'timethis'; my $dbh =

    MySQLのインデックスの効果を理解する - すぎゃーんメモ
  • MySQLのindex(インデックス)って何? - Qiita

    indexを調べる経緯 「MySQlnのindexって知ってる?」 そう、上司は私に問いかけました。 社会人1年目、ろくにコマンドプロンプトを叩いた経験も仮想サーバを作った経験もない私はただ一言「わかりません」と答えるしかありませんでした。 上司に大まかに「indexってのは...」と教えていただきました。そこである程度は理解しましたが詳細までは分かっていません そして「じゃあ、indexについて調べて理解を深めろ」とのことだったのでつい先日、Qiitaに登録したというのもあり、ここで自身なりにまとめようと思いました。 MySQLとは? そもそもMySQLとは何?何のためのもの? MySQLSQLのデータベース言語の一つでデータベースの定義や操作を行うことが出来る。 https://ja.wikipedia.org/wiki/SQL indexとは? データテーブルとは別に検索用に最適化

    MySQLのindex(インデックス)って何? - Qiita
  • 忘れやすい人のための git diff チートシート - Qiita

    git diff は色んな場面で当によく使うんですが、できることが多いだけに全然覚えられずに毎回調べてしまいます。 なので、場面ごとに使えるコマンドを一覧でまとめてみました。 先にワークツリーとインデックス【Gitの基】- サルでもわかるGit入門を読んでおくと、ここに書いてある diff について理解しやすいと思います。 git pull する前にリモートとの変更点を見る git pull をする前にローカルの最新コミットと pull 先のリモートリポジトリとの変更点が見たいときはこのコマンドで見れます。 ここでいうリモート名は origin とかそういうやつです。 git push する前にリモートとの変更点を見る 上記のコマンドは、こんな感じで逆にもできます。

    忘れやすい人のための git diff チートシート - Qiita
  • MySQLでインデックスを貼る時に読みたいページまとめ(初心者向け) - Qiita

    書いてあること インデックス…?INDEXって何それ(゚Д゚)?レベルの人が 最低限、MySQLのクエリチューニングなどできるようになるための取っ掛かり/リンク集です。 初心者が取っ掛かりにする程度(あるいはそれ以下)にしか書いてないので、 深掘りしたい場合は、各リンクを読むことを推奨します。 INDEXって? 超ざっくりいうと 作るとデータ参照が速くなるやつ 大量のレコードが入っているテーブルから1行のレコードを検索するのに 頭から順番に検索したら時間がかかります。 INDEXを作成すると、データテーブルとは別に検索用に最適化された状態でデータが保存されます。 このINDEXを使うことで、目的のレコードを迅速に見つけて取り出すことが可能になります。 ※デメリットもあるので注意! ---- 2018.03.16 追記(コメントにて指摘いただいた内容を転写) ---- MySQL 5.6 で

    MySQLでインデックスを貼る時に読みたいページまとめ(初心者向け) - Qiita
  • 1