MENU

MySQL 一番最初に最低限押さえるべきこと

目次

MySQLとは

  • オープンソースで提供されているリレーショナルデータベース管理システム(RDBMS)
  • RDBMSは、データをテーブルとして表現し、それらのテーブル間の関連性を活用してデータを効率的に保存・管理するためのソフトウェア
  • MySQLは、多くのアプリやウェブサイトで使用され、データの永続化やアクセスのために広く利用されている

初歩的な知識

データベースとテーブル

  • MySQLでは、データを論理的にグループ化した「データベース」内に複数「テーブル」を作成しデータを格納する
  • テーブルは行と列から構成され、各行はレコードと呼ばれ、各列はフィールドと呼ばれる

SQL(Structured Query Language)

  • SQLは、MySQLを含む多くのRDBMSで使用される標準的なデータベースクエリ言語
  • データベースに対してデータの検索、追加、更新、削除などの操作を行うことができる
あわせて読みたい
SQL 一番最初に最低限押さえるべきこと 本記事では、私がSQLを学ぶにあたって、一番基礎となる最初に最低限押さえるべきと感じた内容についてまとめました。 【初歩的な知識】 データベースの基本操作 データ...

主キーと外部キーコンセプト

  • 主キーは、テーブル内のレコードを一意に識別するためのカラム
  • 主キーを設定することで、データの一貫性を保ちつつ、効率的な検索が可能となる
  • 外部キーは、異なるテーブル間の関連性を定義するための仕組みであり、他のテーブルの主キーを参照するカラムとして使用される

インデックス

  • インデックスは、データベース内のテーブルの特定のカラムに対して効率的な検索を可能にするためのデータ構造
  • インデックスを使用することで、大量のデータでも高速な検索が行えるようになるが、同時にデータの追加や更新に対するオーバーヘッドも考慮する必要がある
-- usesテーブルの生成
CREATE TABLE users (
    id INT PRIMARY KEY,
    username VARCHAR(50),
    email VARCHAR(100)
);

-- INDEXの追加
CREATE INDEX idx_username ON users (username);
CREATE INDEX idx_email ON users (email);

オーバーヘッド

  • オーバーヘッドとは、インデックスに伴う追加のコストや影響のことを指す
  • 検索の高速化に有効だが、データベースのパフォーマンスとストレージ使用量のバランスを保つ必要がある
ストレージの増加インデックスは追加のストレージスペースを必要とする、インデックスはデータのコピーではなく、データの一部を保持しており、これによりストレージ使用量が増加する
データの挿入、更新、削除の遅延インデックスを持つテーブルにデータを挿入、更新、削除する際に、インデックスの更新も行われる、これによりデータ操作の速度がわずかに遅くなる可能性がある
メモリ使用量インデックスはデータベースの一部をメモリ内に保持することで高速な検索を提供
大規模なインデックスを持つ場合、メモリ使用量も増加することがある
適切なインデックスの選択過剰なインデックスを作成すると、ストレージ使用量やデータ操作の遅延が増加する可能性がある、適切なカラムに対してインデックスを作成することが重要

具体的な使用例

MySQLサーバーにログイン

mysql -u root -p

dump

dumpとは

  • バックアップのこと、dump(バックアップ)データを用意すること

dumpファイルの作成

mysqldump -u ユーザー名 -p データベース名 テーブル名(複数可) > dumpファイル名
  • dump処理はあくまでdumpデータを生成するだけでDB削除されない
  • 実際にDBを複製・削除したい場合はその作業が別途必要になる

dumpファイルのリストア

以下コマンドでdumpファイルを元に戻せる

mysql -u ユーザー名 -p データベース名 < dumpファイル名

DB:schemaについて

information_schema

  • MySQL サーバーに関する情報が保存されているデータベース
  • 参照可能、更新及び削除不可

performance_schema

  • MySQLで実行されるトランザクションやクエリなどの実行時の様々な情報を取得してくれる機能

レプリケーション

  • すでに存在しているデータを他のデータベースサーバに複製しておくこと
  • プライマリー/セカンダリー、もしくは、プライマリー/レプリカのように表現する

カラムのデータタイプ:unsigned

  • データタイプがind(10) unsignedの場合
    • データ型がintで10文字の制限があり、0と正数の値しか保持できなくなる

参考コンテンツ

Web

丁寧にまとめてくださっていてわかりやすかったです。ありがとうございます!

https://www.sejuku.net/blog/82770

Garbage in, gospel out
MySQL int(10) の意味するところ - Garbage in, gospel out MySQLにおいてint(10)は整数データタイプの表示幅を10桁に指定するという意味になります。 create文例: CREATE TABLE `test` ( `id` int(10) unsigned NOT NULL DEFAULT '0...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

関西在住のWebエンジニア。二児の娘と妻との4人家族。
自身の経験や知識をせっかくまとめるなら、誰かの参考になるかもと考えブログを開設。

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

目次