T BLOB/Text
実際のアプリケーションでは、数万ワードの大容量の記事が 2 つ必要になります。 Oracle では、これら 2 つのタイプのデータを扱うために BOLB と CLOB がありますが、MySQL では、BLOB と TEXT に対応します。
これら 2 つのデータ型の特殊性を考慮して、BLOB と TEXT の特別な保存と操作が行われます。 MySQL 処理:
1) BLOB/TEXT 値はオブジェクトとして処理されることが多く、これらのオブジェクトには独自の ID と独立した記憶領域があります
2) BLOB/TEXT 値がソートに使用される場合、最初の N 文字のみがセクションになります。 N はデータベース内の定数値 (max_sort_length) に対応します。並べ替えに使用するバイト数を指定したい場合は、max_sort_length の値を増やすか、ORDER BY SUBSTRING(column, length ) 関数を使用して、ハンドル
3) BLOB/TEXT がインデックスまたはソートとして使用される場合、フィールド全体の値は使用できません
BOLB/TEXT をインデックスまたはソートとして使用することは最後の手段として避けてください
MySQL のせいで、メモリ エンジンが使用します。 BLOB および TEXT タイプはサポートされていないため、クエリ プロセスに BLOB /TEXT が含まれる場合は、データ行が数行しかない場合でも、MyISAM ディスク一時テーブルを使用する必要があります (最新の Percona サーバー メモリ エンジンは BLOB および TEXT をサポートしています)タイプ)。
MySQL には、通常使用中に DATETIME と TIMESTAMP という 2 つの時間形式が含まれています。 2 つのタイプはそれほど大きなものではありませんが、細部にはまだ違いがあります
このタイプは主にフィールドが使用します列値を保存するための列挙型の使用プロセスには列挙位置と実際の値の変換が含まれるため、全体のパフォーマンスに一定の影響を与える可能性があり、列挙値は .frm (データ テーブル構造定義ファイル) に保存されます。 ) なので、ENUM 列を作成した後、EMUM の内容を更新する場合は、テーブル構造を更新することと同じになります。以下は ENUM 列の例です:
R
mysql> CREATE TABLEenum_test( -> e ENUM('fish', 'apple', 'dog') NOT NULL -> ); mysql> INSERT INTOenum_test(e) VALUES('fish'), ('dog'), ('apple');
· Bit
MySQL 5.0 より前のバージョンでは、BIT は TINYINT と同等とみなされていましたが、新しいバージョンでは、2 つの完全に異なる型として扱われます。
データベースから BIT フィールドを取得してコンソールに表示すると、フィールドの値が数値演算のコンテキストにある場合、その値は 10 進数値として扱われます。 BIT の値について、次の例はこれら 2 つの状況を明確に示しています
mysql>CREATE TABLE bittest(a bit(8)); mysql> INSERT INTObittest VALUES(b'00111001'); mysql> SELECT a, a+ 0 FROM bittest; +------+-------+ | a | a + 0 | +------+-------+ | 9 | 57 | +------+-------+
上記は、高性能 MySql の進化 (2): データ型の最適化_の内容です。コンテンツについては、PHP 中国語 Web サイト (www.php.cn) にご注意ください。