データ分析機能を実装するために最適化された MySQL テーブル構造を設計するにはどうすればよいですか?
要約: データ分析の台頭により、効率的なデータベース テーブル構造の構築がデータ エンジニアが直面する重要な問題になりました。この記事では、テーブルの標準化、インデックスの設計、データ型の選択などのデータ分析機能を実装するために、最適化された MySQL テーブル構造を設計する方法を紹介します。さらに、読者の理解を助けるために具体的なコード例も提供されます。
キーワード: MySQL、テーブル構造設計、データ分析、正規化、インデックス、データ型
たとえば、ユーザー ID、ユーザー名、電子メール アドレスなどのユーザー情報を含むテーブルがあります。正規化するには、このテーブルを 2 つのテーブルに分割し、1 つはユーザー ID とユーザー名を保存し、もう 1 つはユーザー ID と電子メール アドレスを保存します。 2 つのテーブルはユーザー ID によって関連付けられています。
サンプルコード:
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(255)
);
CREATE TABLE user_emails (
user_id INT,
email_address VARCHAR(255),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
通常、検索やフィルタリングに頻繁に使用される列に対してインデックスを作成できます。たとえば、注文情報を含むテーブルでは、注文番号、ユーザー ID、注文日の列にインデックスを作成できます。このようにして、注文番号に基づいて注文情報をクエリすると、クエリ効率が大幅に向上します。
サンプルコード:
CREATE TABLEorders (
order_id INT PRIMARY KEY,
user_id INT,
order_date datetime,
// その他のカラム情報
);
CREATE INDEX idx_order_id ON 注文(order_id);
CREATE INDEX idx_user_id ON 注文(user_id);
CREATE INDEX idx_order_date ON 注文(order_date);
一部の小さな整数データの場合は、テーブル構造を設計するときに、TINYINT、SMALLINT などのより小さなデータ型の使用を検討できます。文字データを保存する場合、CHAR の代わりに VARCHAR を使用すると、記憶域スペースを節約できます。
サンプルコード:
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(255),
Price DECIMAL(10, 2),
数量 INT UNSIGNED
);
参考資料:
[1] MySQL Documentation. (2021). Indexes. [オンライン] で入手可能: https://dev.mysql.com/doc/refman/8.0/en / innodb-index-types.html [2021 年 12 月 18 日にアクセス].
以上がデータ分析機能を実装するために最適化された MySQL テーブル構造を設計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。