MySQL TEXT/BLOBタイプを使用した知識点詳細


一、TEXTとBLOBの違い
TEXTとBLOB家族の間の唯一の違いは、BLOBタイプが記憶しているのはバイナリデータであり、並べ替え規則や文字セットはなく、TEXTタイプは文字セットや並べ替え規則があります。はっきり言って、中国語を貯蔵するなら、TEXTを選択します。
二、標準値問題
Strict Modeではデフォルト値を設定できません。そうでないとcan't have a default valueにエラーが発生します。

mysql> create table `test`.`text_blob`( 
 -> `a_text` text DEFAULT ' ' , 
 -> `b_blob` blob 
 -> );
ERROR 1101 (42000): BLOB/TEXT column 'a_text' can't have a default value
原因:https://www.jb51.net/article/181667.htm
select@@sql_モード表示モード
trict Modeには以下の制限があります。
1)not nullフィールドにnull値を挿入することはサポートされていません。
2)自己成長フィールドに「値を挿入することはサポートされていません。null値を挿入できます。
3)textフィールドがサポートされていません。標準値があります。
三、並べ替え
MySQLがTEXTとBLOB列を並べ替えるのは他のタイプとは違っています。各列の先頭max_のみです。sort_文字列全体の並べ替えではなく、レングスバイトです。
デフォルトは1024です。設定ファイルで変更できます。

mysql> SHOW VARIABLES LIKE 'max_sort_length';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_sort_length | 1024 |
+-----------------+-------+
1 row in set (0.00 sec)
四、プレフィックス索引の作成
インデックスとしての最初の部分の文字を設定すると、インデックスのスペースが大幅に節約され、インデックス効率が向上します。

alter table table1 add key (text1(1024));
知識点拡張:
MySQLフィールド設計規範TEXT/BLOBデータタイプの使用を避ける
説明する
休みの時、多くの時計のデザインを見に行きます。多くの問題を発見しました。古いシステムの上では100を超えるフィールドがあります。中には大量のメディumtextが含まれています。500万に満たないデータ量があります。開発規範の中には500万のデータ量を超えないように設計する必要があります。テーブルが占有しているディスク空間120 Gを確認しましたが、間違いなく大時計です。設計当初は設計を考えたことがありませんでした。一つの言葉がオンラインで使えばいいです。彼を管理します。
二、MySQL仕様
1、単表は500万本の記録を超えないでください。同時に単表が占有するディスクの空間を評価して50 Gを超えないでください。でないと、最適化、分表などを考慮します。
2、textフィールドタイプを無効にし、必要な場合は、単独でテーブルを設計する必要があります。
三、textフィールドタイプを無効にする理由
1、性能が悪い、並べ替えなどの操作は、メモリ一時テーブルを使用することができません。ディスク一時テーブルを使用して行わなければなりません。
2、TEXTまたはBLOBタイプは、プレフィックスインデックスしか使用できません。MySQLはインデックスフィールドの長さに制限があります。
四、解決方法
規則を決めて、厳格に実行します(実行するのは難しいです)、1つか2つのDBAは数十百以上の業務システムに直面して、数万の時計、上の百万のフィールドはすべての表とフィールドを通じて人工的に審査するのは完成することができなくて、最後にやはり知能化の審査システムによってです!
ここで、MySQLはTEXT/BLOBタイプの知識点を使って詳しく説明した文章をここに紹介します。さらにMySQLはTEXT/BLOBタイプのいくつかの注意事項を使って、私達の以前の文章を検索してください。または、下の関連記事を引き続きご覧ください。これからもよろしくお願いします。