1. 現在のデータベース支出のストレージエンジンを表示する方法1:mysql> エンジンを表示 \G; ************************** 1. 行 **************************** エンジン: InnoDB サポート: はい コメント: トランザクション、行レベルのロック、外部キーをサポートします 取引: はい はい セーブポイント: はい ************************** 2. 行 **************************** エンジン: MRG_MYISAM サポート: はい コメント: 同一の MyISAM テーブルのコレクション 取引: なし いいえ セーブポイント: なし ************************** 3. 行 **************************** エンジン: メモリ サポート: はい コメント: ハッシュベース、メモリに保存、一時テーブルに便利 取引: なし いいえ セーブポイント: なし ************************** 4. 行 **************************** エンジン: ブラックホール サポート: はい コメント: /dev/null ストレージ エンジン (書き込んだものはすべて消えます) 取引: なし いいえ セーブポイント: なし ************************** 5. 行 **************************** エンジン: MyISAM サポート: デフォルト コメント: MyISAM ストレージ エンジン 取引: なし いいえ セーブポイント: なし ************************** 6. 行 **************************** エンジン: CSV サポート: はい コメント: CSV ストレージ エンジン 取引: なし いいえ セーブポイント: なし ************************** 7. 行 **************************** エンジン: アーカイブ サポート: はい コメント: アーカイブストレージエンジン 取引: なし いいえ セーブポイント: なし ************************** 8. 行 **************************** エンジン: PERFORMANCE_SCHEMA サポート: はい コメント: パフォーマンス スキーマ 取引: なし いいえ セーブポイント: なし ************************** 9. 行 **************************** エンジン: FEDERATED サポート: いいえ コメント: フェデレーテッド MySQL ストレージ エンジン トランザクション: NULL XA: NULL セーブポイント: NULL セット内の行数は 9 です (0.00 秒) エラー: クエリが指定されていません 方法2: (値が「 mysql> 'have%' のような変数を表示します。 +------------------------+-----------+ | 変数名 | 値 | +------------------------+-----------+ | 圧縮あり | はい | | 暗号化あり | いいえ | | 動的ロードあり | はい | | ジオメトリを持つ | はい | | have_openssl | 無効 | | プロファイリングあり | はい | | クエリキャッシュがある | はい | | rtree_keys を持つ | はい | | have_ssl | 無効 | | ステートメントタイムアウトがある | はい | | シンボリックリンクがある | はい | +------------------------+-----------+ セット内の行数は 11 行、警告数は 1 (0.00 秒) 2. ENGINE={ストレージ エンジン タイプ} テーブルを作成するときにストレージ エンジンを設定します。mysql> テーブル a( を作成 -> i bigint(20) は null ではない auto_increment、 -> 主キー (i) ->) エンジン=myisam デフォルトの文字セット=gbk; エラー 2006 (HY000): MySQL サーバーが消えました 接続できません。再接続を試行しています... 接続ID: 3 現在のデータベース: テスト クエリは正常、影響を受けた行は 0 行 (1.33 秒) 3. テーブルを別のストレージエンジンに変更するには、alterable tablename engine={ストレージエンジンタイプ} を実行します。mysql> テーブルを変更します。 engine=innodb; クエリは正常、影響を受けた行は 0 行 (1.70 秒) レコード: 0 重複: 0 警告: 0 mysql> show テーブルを作成します \G; ************************** 1. 行 **************************** 表: テーブルの作成: CREATE TABLE `a` ( `i` bigint(20) NOT NULL AUTO_INCREMENT、 主キー (`i`) ) エンジン=InnoDB デフォルト文字セット=gbk セット内1列(0.14秒) 3.1 一般的なストレージエンジンの比較
3.2 一般的なストレージ エンジン (MyISAM、InnoDB、MEMORY、MERGE) の学習マイISAM: デフォルトの 利点:アクセス速度が速い 各 (データ ファイルとインデックス ファイルを異なるディレクトリに配置すると、IO が均等に分散され、速度が向上します。) InnoDB: 処理効率が悪く、データとインデックスを保存するために多くのスペースが使用されます。 利点:コミット、ロールバック、クラッシュリカバリ機能を備えたトランザクションセキュリティ、外部キーをサポートする唯一のストレージエンジン 自動拡張列: mysql>テーブルautoincre_demo(を作成します -> i smallint not null auto_increment、 -> 名前varchar(10),主キー(i) ->)エンジン=innodb; エラー 2006 (HY000): MySQL サーバーが消えました 接続できません。再接続を試行しています... 接続ID: 5 現在のデータベース: テスト クエリは正常、影響を受けた行は 0 行 (1.19 秒) mysql> autoincre_demo に値 (1、"121")、(0、"dddf")、(null、"fdf") を挿入します。 クエリは正常、3 行が影響を受けました (0.59 秒) 記録: 3 重複: 0 警告: 0 mysql> autoincre_demo から * を選択します。 +---+------+ | 私 | 名前 | +---+------+ | 1 | 121 | | 2 | dddf | | 3 | フォント | +---+------+ セット内の 3 行 (0.00 秒) alter table tabename auto_increment=n 自動増分列の初期値を設定します(この値はデフォルトで 1 から始まります) 次の例は、LAST_INSERT_ID() の使用方法を示しています。 mysql> autoincre_demo(name) に値('3') を挿入します。 クエリは正常、1 行が影響を受けました (0.36 秒) mysql> LAST_INSERT_ID() を選択します。 +------------------+ | 最後の挿入ID() | +------------------+ | 15 | +------------------+ セット内の 1 行 (0.00 秒) mysql> autoincre_demo(name) に値('3'),('6'),('323'),('21') を挿入します。 クエリは正常、4 行が影響を受けました (0.09 秒) 記録: 4 重複: 0 警告: 0 mysql> LAST_INSERT_ID() を選択します。 +------------------+ | 最後の挿入ID() | +------------------+ | 16 | +------------------+ セット内の 1 行 (0.00 秒) 外部キー制約: 外部キーを作成する場合、親テーブルには対応するインデックスが必要です。また、外部キーを作成すると、子テーブルでは対応するインデックスが自動的に作成されます。 以下はサンプル データベースの 2 つのテーブルです。country mysql> countryテーブルを作成( -> country_id smallint unsigned not null auto_increment, -> 国varchar(50)がnullではない、 -> last_update timestamp は null ではなく、更新時のデフォルトの current_timestamp は current_timestamp です。 -> 主キー(country_id) -> )engine=innodb デフォルトの文字セット=utf8; クエリは正常、影響を受けた行は 0 行 (0.86 秒) mysql> テーブル city を作成します ( -> city_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT、 -> 都市 VARCHAR(50) NOT NULL、 -> country_id SMALLINT UNSIGNED NOT NULL、 -> last_update TIMESTAMP NOT NULL デフォルト CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP、 -> 主キー (city_id)、 -> キー idx_fk_country_id (国ID)、 -> 制約 `fk_city_country` 外部キー (country_id) 参照 country (country_id) ON -> 更新カスケードの削除制限 -> )ENGINE=InnoDB デフォルト文字セット=utf8; クエリは正常、影響を受けた行は 0 行 (3.22 秒) インデックスを作成するときに、親テーブルが削除または更新されたときに子テーブルに対して実行される対応する操作
mysql> 国から*を選択します。 +------------+---------+---------------------+ | 国ID | 国 | 最終更新日 | +------------+---------+---------------------+ | 1 | AAA | 2021-06-16 15:09:22 | +------------+---------+---------------------+ セット内の 1 行 (0.00 秒) mysql> city から * を選択します。 +---------+------+------------+---------------------+ | 都市 ID | 都市 | 国 ID | 最終更新日 | +---------+------+------------+---------------------+ | 10 | bb | 1 | 2021-06-16 15:11:45 | +---------+------+------------+---------------------+ セット内の 1 行 (0.00 秒) mysql> country_id = 1 の国から削除します。 エラー 1451 (23000): 親行を削除または更新できません: 外部キー制約が失敗しました (`test`.`city`、制約 `fk_city_country` FOREIGN KEY (`country_id`) は UPDATE CASCADE で `country` (`country_id`) を参照します) mysql> 国を更新します。country_id を 10000 に設定します。country_id は 1 です。 クエリは正常、1 行が影響を受けました (0.62 秒) 一致した行: 1 変更された行: 1 警告: 0 mysql> 国から*を選択します。 +------------+---------+---------------------+ | 国ID | 国 | 最終更新日 | +------------+---------+---------------------+ | 10000 | AAA | 2021-06-16 15:13:35 | +------------+---------+---------------------+ セット内の 1 行 (0.00 秒) mysql> 都市から*を選択 -> ; +---------+------+------------+---------------------+ | 都市 ID | 都市 | 国 ID | 最終更新日 | +---------+------+------------+---------------------+ | 10 | bb | 10000 | 2021-06-16 15:11:45 | +---------+------+------------+---------------------+ セット内の 1 行 (0.00 秒) 複数のテーブルからデータをインポートする場合、テーブルのインポート順序を無視する必要がある場合は、外部キー チェックを一時的にオフにすることができます。同様に、 テーブルの外部キー情報を表示する: mysql> 'city' のようなテーブルステータスを表示します \G; ************************** 1. 行 **************************** 名前: 都市 エンジン: InnoDB バージョン: 10 行形式: 動的 行数: 1 平均行長: 16384 データ長: 16384 最大データ長: 0 インデックスの長さ: 16384 データ空き容量: 0 自動増分: 11 作成時間: 2021-06-16 15:02:17 更新時間: 2021-06-16 15:13:35 チェック時間: NULL 照合順序: utf8_general_ci チェックサム: NULL 作成オプション: コメント: セット内1列(0.43秒) エラー: クエリが指定されていません 保管方法:
メモリ: メモリに保存された内容を使用してテーブルを作成する 各 MEMORY テーブルは実際には 1 つのディスク ファイルにのみ対応し、形式は 利点:アクセス速度が速く (データはメモリに保存されます)、デフォルトで HASH インデックスが使用されます。サービスがシャットダウンされるとデータは失われます。 mysql> テーブル tab_memory を作成 ENGINE=MEMORY -> 都市ID、都市、国IDを選択 -> FROM city GROUP BY city_id; エラー 2006 (HY000): MySQL サーバーが消えました 接続できません。再接続を試行しています... 接続ID: 12 現在のデータベース: テスト クエリは正常、1 行が影響を受けました (0.62 秒) 記録: 1 重複: 0 警告: 0 mysql> tab_memory から * を選択します。 +---------+------+------------+ | 都市 ID | 都市 | 国 ID | +---------+------+------------+ | 10 | bb | 10000 | +---------+------+------------+ セット内の 1 行 (0.00 秒) mysql> 'tab_memory' のようなテーブルステータスを表示します \G ************************** 1. 行 **************************** 名前: tab_memory エンジン: メモリ バージョン: 10 行形式: 固定 行数: 1 平均行長: 155 データ長: 520320 最大データ長: 65011650 インデックスの長さ: 0 データ空き容量: 0 自動増分: NULL 作成時間: 2021-06-16 15:28:58 更新時間: NULL チェック時間: NULL 照合順序: utf8_unicode_ci チェックサム: NULL 作成オプション: コメント: セット内の 1 行 (0.00 秒) テーブルのインデックスを作成するときに、インデックスの種類を mysql> tab_memory(city_id) のハッシュを使用してインデックス mem_hash を作成します。 エラー 2006 (HY000): MySQL サーバーが消えました 接続できません。再接続を試行しています... 接続ID: 13 現在のデータベース: テスト クエリは正常、1 行が影響を受けました (0.63 秒) 記録: 1 重複: 0 警告: 0 mysql> tab_memory からインデックスを表示 \G; ************************** 1. 行 **************************** テーブル: tab_memory 非ユニーク: 1 キー名: mem_hash インデックス内のシーケンス: 1 列名: 都市ID 照合: NULL カーディナリティ: 1 サブパート: NULL パック: NULL ヌル: インデックスタイプ: HASH コメント: インデックスコメント: セット内1列(0.32秒) エラー: クエリが指定されていません mysql> tab_memory のインデックス mem_hash を削除します。 クエリは正常、1 行が影響を受けました (0.31 秒) 記録: 1 重複: 0 警告: 0 mysql> tab_memory(city_id) に btree を使用してインデックス mem_hash を作成します。 クエリは正常、1 行が影響を受けました (0.16 秒) 記録: 1 重複: 0 警告: 0 mysql> tab_memory からインデックスを表示 \G; ************************** 1. 行 **************************** テーブル: tab_memory 非ユニーク: 1 キー名: mem_hash インデックス内のシーケンス: 1 列名: 都市ID 照合: A カーディナリティ: NULL サブパート: NULL パック: NULL ヌル: インデックスタイプ: BTREE コメント: インデックスコメント: セット内の 1 行 (0.00 秒) エラー: クエリが指定されていません マージ: このストレージサービスは
ストレージファイル: 1 つの mysql> テーブルpayment_2020(を作成します -> 国ID 小整数、 -> 支払い日 日時、 -> 金額 DECIMAL(15,2)、 -> キー idx_fk_country_id (国ID) ->)エンジン=myisam; クエリは正常、影響を受けた行は 0 行 (0.25 秒) mysql> テーブルpayment_2021(を作成します -> 国ID 小整数、 -> 支払い日 日時、 -> 金額 DECIMAL(15,2)、 -> キー idx_fk_country_id (国ID) ->)エンジン=myisam; クエリは正常、影響を受けた行は 0 行 (0.54 秒) mysql> テーブルpayment_all(を作成します -> 国ID 小整数、 -> 支払い日 日時、 -> 金額 DECIMAL(15,2)、 -> INDEX(国ID) -> )engine=merge union=(payment_2020,payment_2021) INSERT_METHOD=LAST; クエリは正常、影響を受けた行は 0 行 (0.47 秒) 2020年と2021年にそれぞれデータを挿入し、クエリを実行します。 mysql> payment_2020 に値(1,'2020-06-01',100000),(2,'2020-06-15',150000)を挿入します。 クエリは正常、2 行が影響を受けました (0.00 秒) 記録: 2 重複: 0 警告: 0 mysql> payment_2021 に値(1,'2021-04-20',35000),(2,'2021-06-15',220000)を挿入します。 クエリは正常、2 行が影響を受けました (0.03 秒) 記録: 2 重複: 0 警告: 0 mysql> payment_2020 から * を選択します。 +------------+---------------------+-----------+ | 国ID | 支払日 | 金額 | +------------+---------------------+-----------+ | 1 | 2020-06-01 00:00:00 | 100000.00 | | 2 | 2020-06-15 00:00:00 | 150000.00 | +------------+---------------------+-----------+ セット内の 2 行 (0.00 秒) mysql> payment_2021 から * を選択します。 +------------+---------------------+-----------+ | 国ID | 支払日 | 金額 | +------------+---------------------+-----------+ | 1 | 2021-04-20 00:00:00 | 35000.00 | | 2 | 2021-06-15 00:00:00 | 220000.00 | +------------+---------------------+-----------+ セット内の 2 行 (0.00 秒) mysql> payment_all から * を選択します。 +------------+---------------------+-----------+ | 国ID | 支払日 | 金額 | +------------+---------------------+-----------+ | 1 | 2020-06-01 00:00:00 | 100000.00 | | 2 | 2020-06-15 00:00:00 | 150000.00 | | 1 | 2021-04-20 00:00:00 | 35000.00 | | 2 | 2021-06-15 00:00:00 | 220000.00 | +------------+---------------------+-----------+ セット内の 4 行 (0.00 秒)
次に、 mysql> payment_all に値(3,'2020-03-30',12333131)を挿入します。 クエリは正常、1 行が影響を受けました (0.31 秒) mysql> payment_all から * を選択します。 +------------+---------------------+-------------+ | 国ID | 支払日 | 金額 | +------------+---------------------+-------------+ | 1 | 2020-06-01 00:00:00 | 100000.00 | | 2 | 2020-06-15 00:00:00 | 150000.00 | | 1 | 2021-04-20 00:00:00 | 35000.00 | | 2 | 2021-06-15 00:00:00 | 220000.00 | | 3 | 2020-03-30 00:00:00 | 12333131.00 | +------------+---------------------+-------------+ セット内の行数は 5 です (0.00 秒) mysql> payment_2021 から * を選択します。 +------------+---------------------+-------------+ | 国ID | 支払日 | 金額 | +------------+---------------------+-------------+ | 1 | 2021-04-20 00:00:00 | 35000.00 | | 2 | 2021-06-15 00:00:00 | 220000.00 | | 3 | 2020-03-30 00:00:00 | 12333131.00 | +------------+---------------------+-------------+ セット内の 3 行 (0.00 秒) mysql> payment_2020 から * を選択します。 +------------+---------------------+-----------+ | 国ID | 支払日 | 金額 | +------------+---------------------+-----------+ | 1 | 2020-06-01 00:00:00 | 100000.00 | | 2 | 2020-06-15 00:00:00 | 150000.00 | +------------+---------------------+-----------+ セット内の 2 行 (0.00 秒) これで、MySQL テーブル型ストレージ エンジンの選択に関するこの記事は終了です。MySQL テーブル型ストレージ エンジンに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: 2013年のウェブデザインUIの最もホットなトレンド最も人気のあるUIデザイン
>>: JavaScript は 3 つの一般的な Web 効果 (オフセット、クライアント、スクロール シリーズ) を実装します。
フロントエンド プロジェクトとバックエンド プロジェクトは分離されており、フロントエンドとバックエン...
出典: https://medium.com/better-programming、著者: Fere...
脆弱性の説明Apache Flink は、分散ストリームおよびバッチ データ処理用のオープン ソース...
CSS を使用する場合は、DOCTYPE (ドキュメント タイプ定義) を記述することを忘れないでく...
Web ページには、非常に複雑な HTML 構造があります。CSS を使用して関連するスタイルを定義...
目次1. はじめに: 2. プロトタイプチェーン継承: 3. コンストラクタ継承の借用(オブジェクト...
ウェブサイトが悪意を持ってリクエストされた場合、IP アドレスをブラックリストに登録することは重要な...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
ElementUIは、参考のためにテーブルツリーリストの読み込みチュートリアルを実装しています。具体...
概要データベースでは、ツリー ディレクトリと同様に、インデックスを使用してデータ検索を高速化します。...
最も単純な hello world 出力イメージを作成することは最も簡単なスタートですが、実行中のコ...
この記事では、タイムライン効果を実現するためのvue+swiperの具体的なコードを参考までに共有し...
序文まず、TCP 接続を識別する方法を見てみましょう。システムは、(src_ip、src_port、...
目次DMLステートメント1. レコードを挿入する2. 記録を更新する3. シンプルなクエリレコード4...
注: このデモはミニプログラム環境でテストされており、他の h5 および pc Web ページにも適...