tencent cloud

TDSQL-C for MySQL

動向とお知らせ
製品アップデート
製品お知らせ
初心者ガイド
製品概要
プロダクト概要
製品の強み
適用シーン
製品アーキテクチャ
製品仕様
インスタンスタイプ
製品機能一覧
データベースのバージョン
リージョンとアベイラビリティゾーン
基本概念
利用制限
利用ガイドの推奨事項
自社開発カーネル
カーネル概要
カーネルバージョンのアップデート情報
カーネル最適化バージョン
機能特性
パフォーマンス関連機能
セキュリティカテゴリの機能
安定性機能
分析エンジン特性
カーネル問題のチェックと修復
購入ガイド
課金概要
製品価格
クラスタを作成する
構成変更説明
未払いについての説明
継続支払いの説明
返金ポリシー
従量課金から年/月単位サブスクリプションへの変換
従量課金からServerlessへの変換
付加価値サービスの課金説明
料金請求書の確認
クイックスタート
データベース監査
概要
監査インスタンス一覧
監査サービスを有効化する
監査ログの確認
ログ配信
事後アラーム設定
監査ルールの変更
監査サービスを変更する
監査サービスを停止する
監査ルールテンプレート
監査タスクの照会
サブユーザーへのデータベース監査利用権限付与
Serverlessサービス
Serverless入門
サーバーレス版クラスタの作成と管理
伸縮性スケーリング管理ツール
Serverlessリソースパック
マルチAZデプロイ
設定を変更する
よくあるご質問
Serverlessコスト見積ツール
操作ガイド
操作概要
コンソールでのクラスタページビューの切り替え
データベース接続
インスタンス管理
設定を変更する
インスタンス形態管理
クラスタ管理
読み取り専用インスタンス管理 
データベースプロキシ
アカウント管理
DMC
DMC(データベース管理ツール)
パラメータ設定
マルチAZデプロイ
グローバルデータベース
バックアップとリストア
操作ログ
データマイグレーション
パラレルクエリ
列ストレージインデックス CSI
分析エンジン
データベースセキュリティと暗号化
モニタリングとアラーム
SQLの基本操作
以下のコマンドを実行して、TDSQL-C for MySQLに接続してログインします
Tag
実践チュートリアル
TDSQL-C for MySQL データベース監査の等級保護実践
非InnoDBテーブル問題のワンクリック移行検出処理方法
DTSによるデータベースバージョンのアップグレード MySQL 5.7から8.0へ
TDSQL-C for MySQL 使用規範
新版コンソール
データベースプロキシの複数接続アドレスによる複数ROグループの実現
データベースプロキシのメリット
ストレージの課金モードの選び方
DTSによるリモートディザスタリカバリの構築
クラスタ用VPCの作成
データ復旧の方法
CPU使用率の高騰問題の解決方法
サブユーザーへの監視データ閲覧権限付与方法
ホワイトペーパー
セキュリティホワイトペーパー
性能ホワイトペーパー
トラブルシューティング
接続関連
性能関連
よくあるご質問
基本概念
購入と課金
サポートされるフォーマット
接続とネットワーク
機能特性
コンソールの操作
データベーステーブル
パフォーマンスとログ
データベース監査
TDSQL-C for MySQLとTencentDB for MySQLの違い
関連契約
SLA
利用規約
TDSQL-C ポリシー
プライバシーポリシー
データ処理と安全プロトコル
汎用参考
標準と認証
用語一覧
お問い合わせ
ドキュメントTDSQL-C for MySQL製品概要利用ガイドの推奨事項データベース権限とテーブルインデックス仕様

データベース権限とテーブルインデックス仕様

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-12-30 16:02:26
本文では、TDSQL-C for MySQLクラスタ作成後の関連利用規約に関するご提案をご紹介します。

データベース権限仕様

すべてのDDL(例:テーブル作成、テーブル構造変更など)は、レビューを通過した後にのみ、DBAがデータベース管理ツール(DMC)を通じて実行し、業務閑散期にリリースされます。
権限は細粒度制御が必要であり、読み取り権限と書き込み権限を分離し、運用保守権限と開発権限を分離する必要があります。
DDL操作は操作ログを保持します。

データベースおよびテーブルの設計指針

InnoDBはMySQLにおいてトランザクションをサポートするエンジンです。MySQLデータベースでテーブルを作成し、トランザクション機能を使用する必要がある場合、必ずInnoDBエンジンを使用してテーブルを作成する必要があります。MySQLに対応する他のエンジンはトランザクションをサポートしていません。
小数型は必ずdecimal型を使用して定義し、floatやdoubleの使用は禁止します。
説明:
floatおよびdoubleは保存時に精度損失の問題が発生し、値比較時に誤った結果が得られる可能性があります。保存データの範囲がdecimalの範囲を超える場合は、データを整数部分と小数部分に分割して別々に保存することをお勧めします。
予約語の使用を禁止します。desc、range、match、delayedなどについては、MySQL公式予約語を参照してください。
データテーブルには必ず主キーが必要です。ビジネスに関連する、順序付けられ一意性のあるフィールドを主キーとして使用することも、ビジネスに関連しないオートインクリメントフィールドを主キーとして使用することも推奨されます。
説明:
主キーがないと、マスターの実行速度低下やレプリケーション遅延の問題が発生しやすくなります。
テーブル作成時には、フィールドにデフォルト値を設定し、NOT NULLに設定する必要があります。これにより、データ挿入時にNULL値や欠損値が発生するのを防ぎます。数値型のデフォルト値には0を、varcharなどの文字列型には空文字('')を推奨します。
テーブルにはcreate_timeとupdate_timeの2つのフィールドを含めることを推奨します。いずれもdatetime型です。
説明:
データウェアハウスでのデータ抽出時には、これらの統一されたフィールドを活用することで業務確認が不要になります。 データベースに不測の事態が発生した場合、データの登録時刻や更新時刻を特定でき、障害発生時のデータ復旧判断に役立ちます。
単一テーブルのフィールド数を制御し、上限は50フィールドとします。
保存する文字列の長さがほぼ等しい場合は、char固定長文字列タイプを使用します。
フィールドの適切なテーブル間冗長化が許可されます。これにより結合クエリを回避し、クエリパフォーマンスを向上させますが、データの一貫性を考慮する必要があります。
説明:
冗長フィールドは以下の原則に従う必要があります:
頻繁に変更されないフィールド。
varcharの超長フィールドやtextフィールドではありません。
適切なストレージ長(LONG TEXTやBLOBなどの長いタイプのフィールドの使用は推奨しません)は、データベースのテーブルスペースを節約するだけでなく、インデックスのストレージも節約し、さらに重要なのは検索速度を向上させることです。

インデックス規範

フィールドタイプの違いによる暗黙的な変換を避け、それによってインデックスが無効になるのを防ぎます。
ビジネス上で一意性を持つフィールドは、複数のフィールドの組み合わせであっても、すべての一意性フィールドの最小セットにユニークインデックスを設定することを推奨します。 例:a、b、c、d、e、fフィールドを含むテーブルで、ビジネス上abとefがそれぞれ一意性を持つフィールドセットである場合、最小セットであるabとefにそれぞれユニークインデックスを設定するのが最適です。
説明:
アプリケーション層で完全な検証制御を行っていても、ユニークインデックスがなければ、不正なデータが発生する可能性があります。
同時に、作成したユニークインデックスがクエリに実際に役立つかどうかを考慮する必要があり、役に立たないインデックスは削除を検討できます。
複数のインデックスを設定することが挿入性能に与える影響を考慮する必要があり、一意性に関連するデータの正確性の要件およびパフォーマンス要件に基づいて、一意性インデックスを複数設定する必要があるかどうかを検討します。
定長フィールド(例:INT)にインデックスを設定することを推奨します。varcharフィールドにインデックスを設定する場合は、インデックス長を指定する必要があり、フィールド全体にインデックスを設定する必要はありません。実際のテキストの識別度に基づいてインデックス長を決定すればよいです。
説明:
インデックスの長さと識別度は相反する関係にあります。一般的に文字列型データの場合、長さ20のインデックスで識別度が90%以上に達することがあり、count(distinct left(列名, 索引長))/count(*)の識別度を使用して決定できます(識別度の高いものを前に、低いものを後ろに配置します)。
ページ検索では左方一致(例:SELECT * FROM users WHERE u_name LIKE '%hk')や全一致の使用を避け、インデックススキャンからフルテーブルスキャンへの低下を防いでください。必要な場合はアプリケーション層で対応してください。
説明:
インデックスファイルはB-treeの最左端前方一致の特性を持っており、左側の値が確定していない場合、このインデックスを使用することはできません。
カバリングインデックスを利用してクエリ操作を行うことで、テーブルアクセスを回避できますが、カバリングインデックスに追加するフィールドが多すぎないように注意し、書き込み性能とのバランスを考慮する必要があります。
説明:
作成可能なインデックスの種類:主キーインデックス、ユニークインデックス、通常インデックスです。カバリングインデックスはクエリの効果の一種であり、explainの結果を利用すると、extra列に「using index」が表示されます。
SQLパフォーマンス最適化の目標:少なくともrangeレベルに達する必要があり、refレベルが求められます。可能であればconstsが最良です。
複合インデックスを作成する際は、識別度が最も高いものを左側に配置します。
単一テーブルのインデックス数は5個以内に制御するか、テーブルのフィールド数の20%を超えないようにします。
インデックス作成における以下の誤った認識を避ける:
過剰に作成しても構わないという誤った認識。一つのクエリには一つのインデックスが必要だという誤解。
過剰に作成しないという誤った認識。インデックスがスペースを消費し、更新や新規追加の速度を著しく低下させると誤解している。
ユニークインデックスを使用しない。ビジネスの一意性はすべてアプリケーション層で「先に検索してから挿入する」方法で解決できると誤って認識している。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック