2017-06-12 18 views
1

私はかなり一般的にMySQLとSQLでかなり新しいですが、今では限界にうまくいく31000の長さのテーブルを作成しようとしています。 VARCHAR列の行サイズが大きすぎます。

CREATE TABLE gdasgds (profileName VARCHAR(255), 
profilePic VARCHAR(255), 
likes INTEGER, 
comments INTEGER, 
PostID CHAR(11), 
time BIGINT, 
type TINYINT, 
content VARCHAR(10000), 
Options VARCHAR(10000), 
Votes VARCHAR(10000)); 
+0

上記のクエリは正常に動作します。問題を説明してください... –

+0

あなたが使用しているmysqlのバージョン.. – scaisEdge

+0

バージョン5.7.18を使用しています。よく試してみるとこのエラーが発生します。 – Digger2011

答えて

1

値は可変長文字列です。長さは で、MySQL 5.0.3より前の0〜255の値、0から 5.0.3以降のバージョンの65,535の値として指定できます。

ので

CREATE TABLE gdasgds (
    profileName VARCHAR(255), 
    profilePic VARCHAR(255), 
    likes INTEGER, 
    comments INTEGER, 
    PostID CHAR(11), 
    time BIGINT, 
    type TINYINT, 
    content text, 
    Options text, 
    Votes text); 

とにかくあなたが長い文字列(または中のテキストや長いテキスト)のテキストを使用することができます..あなたのために

を実際のバージョンを確認

TEXT(およびBLOB)がオフに保存されていますテーブルは実際のストレージの場所へのポインタを持っています。

VARCHARはテーブルとともにインラインで格納されます。 サイズが妥当である場合、VARCHARは高速です

私の経験では大量のクエリ(100,0000行のテキストタイプ)でも大きな違いは見られません。

+0

テキストとVarcharの間にパフォーマンスの違いはありますか? – Digger2011

+0

答えが更新されました。パフォーマンスの差異がかなりわかりません – scaisEdge

+0

私はあなたの答えをまだ受け入れてくれました。バージョンは5.7.18です。charsetはutf8です。設定を変更する必要がありますか? – Digger2011

関連する問題