2017-08-24 6 views
-2

を向上させるために:MySQLの列タイプは、私は2つの質問がある</p> <p>Iは、テーブルごとの行の10Kと同じカラム(製品の種類のテーブルA、別のタイプのテーブルB ..)との2つのテーブルを持ってセレクト性能

q1) SELECTクエリで最高のパフォーマンスを得るにはどうすればよいですか? とSELECT UNION ...または別の列(型)を持つ1つのテーブルを持ち、SELECT ... WHERE ... AND type = 'A'のようなクエリを書く方が良いでしょうか?

Q2)私は、「オブジェクト」という名前の列、および行のコンテンツの中な長さを持っているテーブル内の である私は、SELECTクエリで最高の性能を持つことができますどのように160文字 ? columntype VARCHAR(インデックス)またはTEXT?

ありがとうございます。私の英語のために申し訳ありません!

+0

最初の質問では、WHEREと一緒に使うことができる2番目のオプションはおそらく行く方法です。 2番目の質問では、varcharまたはtextは、それらの(そしておそらく他の)列にインデックスを持っているかどうかのように最大の問題ではないかもしれません。そして、 'TEXT'はインデックスを持つプレフィックス長を持たなければなりません。 –

答えて

0

質問1については、このスキーマ設計にどのように到着したのかわかりませんが、UNIONによって導入されたパフォーマンスの問題にかかわらず、2つの製品が同じ属性で異なるタイプを持つ場合、どちらの場合も、TYPE列を指定します。列がかなり異なる場合は、2つの表アーキテクチャを維持してください(1つの表に多数のNULL項目が含まれないようにする)。ここでUNIONのパフォーマンスについて調べてください。The effects UNION in a SQL query

質問2については、このスレッドMySQL: Large VARCHAR vs. TEXT? を参照してください。あなたのケースでは、VARCHARはその列のテキストのインライン格納には全く問題ありません。

希望すると便利です。

関連する問題