ホームページ  >  記事  >  データベース  >  MySql で長文フィールドが返される問題を解決する方法

MySql で長文フィールドが返される問題を解決する方法

WBOY
WBOY転載
2023-05-31 22:49:231605ブラウズ

MySql でのロングテキスト フィールドの戻り値

最近の開発ではロングテキスト フィールドが使用されています。 mysql のこのフィールドの最大長は 4G です。

次の図に示すように、

MySql で長文フィールドが返される問題を解決する方法

MySql で長文フィールドが返される問題を解決する方法

#開発中に遭遇したものです。問題は。たとえば、記事テーブルがあり、ページではリストの形式でフロントエンドにデータを表示する必要があります(たとえば、著者、タイトルなどのいくつかのフィールドのみを表示し、それを複数のレコードを表示するテーブル) ですが、テーブルではレコード内のすべての情報が検索され、ユーザーがレコードをクリックすると詳細ページにジャンプし、詳細情報が表示されます。

このように、データ量が比較的大きい場合や、テキストの内容が比較的大きい場合には、問題が発生します。

ページ内のデータ量が多くなると、最終的にデータ一覧が表示されるまでのページの読み込み時間が長くなります。これは使用効果に重大な影響を与えます。

解決策

もちろん、これは SQL ステートメントに問題がありますが、上記のようにリスト全体をクエリする場合、ロングテキスト フィールドの代わりに他のフィールドをクエリすることができます。次に、ユーザーが特定のデータをクリックすると、データベースにアクセスして、データの ID に基づいてそのデータを確認することになりますが、このとき、長文を確認することができます。

そういえば、別の状況について話したいと思います。つまり、データベースから見つかったデータはエンティティ クラスにカプセル化されているが、特定のフィールドの値が取得できず、null になる場合があります。 。 SQL クエリ ステートメントをチェックして、返された結果のフィールドが対応するクラス フィールドにマップおよびカプセル化されていることを確認する必要があります。

一般に、これはフィールドが結果セット内でカプセル化されていないことが原因です。

Mysql のテキスト フィールドの範囲

text: 最大長 2^31-1 文字の可変長の非 Unicode データを格納します。

テキスト列にはデフォルト値を設定できません。保存または取得のプロセス中、大文字と小文字の変換は行われません。後で長さを指定してもエラーは報告されませんが、この長さは機能しません。つまり、指定した長さを超える場合でも、通常どおり挿入できます。

MySQL では、TEXT 型のカラムの最大長は 65,535 文字 (つまり、2 の 16 乗マイナス 1) です。

テキストの長さが十分ではないと思われる場合は、

  • MEDIUMTEXTを選択できます。最大長は 16,777,215 です。

  • LONGTEXT最大長は 4,294,967,295 です

  • ##Text は主に非バイナリを格納するために使用されますtext Baidu が知っているフォーラムの投稿、質問、または質問と回答などのテキスト。

明確にする必要があるのは、text と char varchar blob の違いです。

mysql テキスト フィールドの長さを変更する_mysql テキスト フィールドの長さ? mysql データベースのテキスト フィールドの長さが不十分であるという問題...

タイプは可変長文字列で、最大 65535 文字です。

はフィールド タイプを MEDIUMTEXT (最大文字数) に変更できます。

#MySQL は 4 つの TEXT フィールド タイプ (TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT) をサポートしており、この投稿ではこれらの各フィールドの最大長について調べます。 types.

MySQL の MyISAM テーブルの行の最大サイズは 65,535 バイトであるため、行内のすべてのデータはその制限内に収まる必要があります。ただし、TEXT 型はテーブル自体の外部に格納され、影響を与えるだけですその制限に向けて 9 ~ 12 バイト (詳細については、MySQL マニュアル - データ ストレージ要件の章を参照してください。) TEXT データ型は、VARCHAR および CHAR テキスト型よりもはるかに多くのデータを保存できるため、TEXT 型が必要になります。 Web ページや類似のコンテンツをデータベースに保存するときに使用します。各データ型に保存できるデータの最大量は次のとおりです: TINYTEXT256 バイト

TEXT65,535 バイト~64kb

MEDIUMTEXT 16,777,215 バイト~16MB

LONGTEXT4,294,967,295 バイト~4GB

ほとんどの状況では、おそらく TEXT タイプで十分ですが、コンテンツ管理システムをコーディングしている場合は、おそらくデータ サイズの制限に問題がないように、長いページには MEDIUMTEXT タイプを使用します。

utf8mb4 では中国語の文字は何文字を占めますか

答え: 3

MySQL の公式マニュアルの utf8mb4 の説明は次のとおりです。

MySql で長文フィールドが返される問題を解決する方法既存のデータベース バージョンのデフォルトの utf8 は utf8mb3 です。「同じ長さ」に注意してください。

したがって、utf8mb4 では、英語は 1 バイト、一般的な中国語の文字は 3 バイト、絵文字は 4 バイトを占めます。

絵文字テーブルへのコード挿入エラーについては、テーブルのエンコーディングとデータベース接続のエンコーディングが両方ともutf8mb4であるかどうかを確認してください。

結論: データベースとテーブルは両方とも utf8mb4 に設定されます。

以上がMySql で長文フィールドが返される問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。