sql >> データベース >  >> RDS >> Mysql

MySQLデータベースでTEXTフィールドを一意に保つための最良の方法

    コメントでこれをどのように解決するか尋ねられたので、回答として書きます。

    このような状況にあることは、アプリケーションの設計に誤りがあることを示唆しています。それが何を意味するのか考えてみてください。

    事前に長さを指定できないテキストがあり、非常に長く(最大64k)、一意性を維持したいテキストがあります。このような量のデータが別々のキーに分割され、一意性を生成するために複合インデックスを作成することを想像してみてください。これがあなたがやろうとしていることです。整数の場合、これは16000整数のインデックスになり、複合インデックスに結合されます。

    さらに、CHARACTERタイプのフィールド(CHAR、VARCHAR、TEXT)は、エンコードによる解釈の根底にあることを考慮してください。これにより、問題がさらに複雑になります。

    どういうわけかデータを分割することを強くお勧めします。これにより、DBMSが可変長文字ブロックを組み込む必要がなくなるだけでなく、データの一部に対して複合キーを生成する可能性もあります。たぶん、あなたはあなたのデータのためのより良いストレージソリューションを見つけることさえできるでしょう。

    質問がある場合は、テーブルやデータベース構造を投稿し、TEXTフィールドに含まれる論理データと、それが一意である必要があると考える理由を説明することをお勧めします。



    1. 1年前から現在までのすべてのレコードを選択

    2. SQLがwhere句の列エイリアスを認識しない

    3. txtファイル構成のC#Mysql接続

    4. 正規表現-文字列内の特定の番号を検索