MySQL の最適化 - 単純な構文のサンプル コード分析:
--mysql CREATE TABLE emp ( id INT DEFAULT 12 )
MYSQL の自動インクリメント列はインデックス付き列である必要があり、シード値は次のとおりです。次の設定
--mysql -- 设置自增ID从N开始 CREATE TABLE emp ( ID INT PRIMARY KEY AUTO_INCREMENT ) AUTO_INCREMENT = 100 ; --(设置自增ID从100开始)
は、自動インクリメント列のステップ サイズを設定します。これは、セッション レベルの場合、ユーザーが新しいセッションを作成するときに、グローバル レベルとセッション レベルに分けることができます。ステップ サイズはグローバル レベルに戻ります。MySQL はテーブル レベルのステップ サイズに設定できません。 !
mysql サーバーは、グローバル変数とセッション変数の 2 種類の mysql システム パラメータ (システム変数) を維持します。
それらの意味と違いは、それぞれの名前に示されているとおりです。セッション変数への変更はこのセッションにのみ影響します。グローバル変数への変更は、
すべての新しいセッションに影響します。 (変更時の既存のセッションは影響を受けません) 次回 mysql サーバーが再起動されるまで。
その変更の影響は再起動をまたがることはできないことに注意してください。mysql サーバーの再起動時に新しい値を使用したい場合は、コマンドラインで変数オプションを指定するか、オプション ファイルを変更することによってのみ指定できます。 SET は再起動をまたいで到達できません。
すべてのシステム変数にはデフォルト値があり、mysql システムのコンパイル時に決定されます。
システム変数を指定するには、通常、サーバーの起動時にコマンドラインでオプションを指定するか、オプションファイルを使用して指定できます。
もちろん、ほとんどのシステム変数は、システムの実行中に set コマンドを通じて値を指定できます。
システムの現在のデフォルトの自動インクリメント列のシード値とステップ値を確認してください
SHOW GLOBAL VARIABLES LIKE 'auto_incre%'; -- 全局变量
回答: テーブル タイプが MyISAM の場合、それは 11 です。テーブルのタイプが InnoDB の場合、ID は 8 です。
これは、2 種類のストレージ エンジンが異なる方法で最大 ID レコードを保存するため、MyISAM テーブルはデータ ファイルに最大 ID を記録し、自動インクリメントされた主キーの最大 ID 値は再起動時に失われません。 mysql;
InnoDB の最大 ID 値はメモリに記録されるため、mysql を再起動するか、テーブルに対して OPTIMIZE 操作を実行すると、最大 ID 値は失われます。
ところで、MYSQL には現在のテーブルの自動インクリメント値を取得するメソッドが 4 つあります
(1) SELECT MAX(id) FROM person 针对特定表 (2) SELECT LAST_INSERT_ID() 函数 针对任何表 (3) SELECT @@identity 针对任何表
@@identity を使用するための前提条件は、挿入操作を実行した後、select @@identity を実行するときに接続が閉じられていないことです。そうでない場合、結果は NULL 値になります。
(4) SHOW TABLE STATUS LIKE 'person'
3. テーブル定義を表示します
DESC emp
ALTER TABLE emp RENAME emp2
MYSQL では、フィールド名を変更する場合、フィールドのデータ型を追加する必要があります。そうしないと、CHANGE でデータ型を変更することしかできません。 SQL文の「新しいフィールド名」と「古いフィールド名」を置き換えて、「データ型」だけを変更する方法です。 , 先ほどの例では、id カラムを bigint データ型に変更します
ALTER TABLE emp2 MODIFY id BIGINT
MYSQL フィールドを削除しますCOLUMN キーワードを追加する必要はありません
<p style="margin-bottom: 7px;">ALTER TABLE emp2 CHANGE id id BIGINT<br/></p>
以上がMySQL の最適化 - 単純な構文のサンプル コード分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。