問題タブ [varchar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
501 参照

mysql - mysql 7columns pk と 1 列 md5 の一意の制約

現在、約 7,000 万行の非常に大きなテーブルがあり、毎日数千単位で増加しています。このスキーマは毎日ひっくり返っているため、パーティション分割されたテーブルに移動して ddl を再設計しています。

テーブルは基本的にNOT NULL INTEGERS(いくつかの中型、いくつかのINT、いくつかの小さな)のコレクションであり、7列のセットに対して一意の制約が必要です(テーブルにはより多くの列があります)。これは、挿入ごとに計算するのに非常に高価であり、増加しますインデックスファイルのサイズは、私はそれを取得したことがないので、それをドロップして、何とかmd5/多分単純に値を連結することを好みます...まだわかりません.

問題は、このような大きな一意の番号を保持できる唯一の列タイプが varchar であることです。この PK が実際に優れているかどうか疑問に思っています。また、PRIMARY KEY 'part_key' (site_id,id) があるため、要約すると、パーティションの設計で一意の制約を使用する必要があります...これは新しい問題ではないと確信していますが、私はそうではありませんでした。 2つを比較するベンチマーク/ドキュメントを見つけることができません.この問題を経験した人はいますか? 問題は、私がPKまたは一意のフィールドのハッシュ値だけで取得していない場合、PKが8つのフィールド全体である必要があることです(このテーブルにはおそらく1億行以上あることに注意してください) PS:取得は主に7 列のうち 2 列で実行 ディスク サイズは問題ではありません。

0 投票する
6 に答える
3134 参照

database - 127未満でない限り、SQLフィールドの長さが常に(2^n)-1なのはなぜですか?

多くのデータベース スキーマは、次の標準に従っているようです。

(2^n)-1大きいフィールドの場合:

...小さい方は(2^n)

(2^n)-1 という数値が使用される理由は理解できますが、理解できないのは、小さなフィールドまでトレンドを継続する必要がない理由です。

例えば

これには何か理由があるのでしょうか、それとも単にリターンが大幅に減少しただけなのでしょうか?

0 投票する
4 に答える
67213 参照

mysql - MySQLVARCHARサイズ制限

タイプのフィールドを持つテーブルに列がありVARCHAR(15)、長さ16のデータを挿入しようとすると、MySQLは次のようなエラーを出します。

MySQLのVARCHARフィールドが固定長になる理由を誰かが知っていますか?また、指定されたサイズに基づいて、VARCHARフィールドはレコードごとに何バイトを使用しますか?

0 投票する
5 に答える
26435 参照

postgresql - PostgreSQLサーバーが「C」ロケールを使用しているかどうかはどうすればわかりますか?

PostgreSQL 8.3 DBテーブルを最大限に最適化しようとしていますが、文字列の最初のN文字に対してvarchar_pattern_ops実行している特定の列に使用する必要があるかどうかわかりません。このドキュメントLIKEによると、の使用は「...サーバーが標準の「C」ロケールを使用しない場合」にのみ必要です。xxx_pattern_ops

誰かがこれが何を意味するのか説明できますか?データベースが使用しているロケールを確認するにはどうすればよいですか?

0 投票する
6 に答える
7989 参照

sql-server - インライン varchar(max) 列を使用するか、別のテーブルに格納する必要がありますか?

特定のシステム操作の詳細を記録するために、MS SQL Server 2005 でテーブルを作成したいと考えています。以下のテーブル デザインからわかるように、Detailsis 以外のすべての列は null 不可です。

Details列に常にデータが含まれているとは限らないためです。この列を別のテーブルに格納し、代わりにリンクを提供する方が効率的ですか?

小さいデータ型の場合はあまり考慮しませんが、varchar(max)これを行うとテーブルのサイズを小さく保つのに役立ちますか? それとも、データベースを賢くしようとしているだけで、何も達成していませんか?

0 投票する
5 に答える
33794 参照

sql - varchar(-1) とはどういう意味ですか?

SQL Server 2008 での varchar(-1) の意味は何ですか? varchar(max) の代替ですか?

0 投票する
4 に答える
156724 参照

sql-server-2008 - varchar(max) の文字数は?

データ型が VARCHAR(MAX) の場合、SQL Server 2008 データベース フィールドには何文字を含めることができますか?

0 投票する
2 に答える
516 参照

sql - DB2 varchar インデックス結合

DB2 の場合...

table1.a は varchar(30) で、インデックスがあります。table2.b は varchar(45) で、インデックスがあります。

table1.a = table2.btable1、table2、またはその両方でインデックスを使用しますか?

両方のインデックスを使用する必要があることは明らかですが、私はsybaseを信じているので質問しています.これはインデックスの1つだけを使用します(どちらかわかりません)。

私はこれを完全にテストするつもりですが、現在はできません。

0 投票する
2 に答える
76 参照

sql - ケース...mysqlで文字列を使用する場合

こんにちは私はのようないくつかのクエリが欲しいです

column2には、varcharが格納されています。誰かがこれを手伝ってくれますか?

0 投票する
36 に答える
801239 参照

mysql - MySQL エラー #1071 - 指定されたキーが長すぎます。キーの最大長は 767 バイトです

次のコマンドを実行したとき:

次のエラー メッセージが表示されました。

column1 と column2 に関する情報:

501バイトしか必要とvarchar(20)しないのに、21バイトしか必要ないと思います。varchar(500)したがって、合計バイト数は 522 で、767 未満です。では、なぜエラー メッセージが表示されたのでしょうか?