2016-11-29 12 views
-1

これを解決するためにお手伝いしてください...行サイズが大きすぎます

行サイズが大きすぎます。 BLOBを数えずに使用されているテーブルタイプの最大行サイズは65535です。これにはストレージオーバーヘッドが含まれており、マニュアルを確認してください。あなたは、これは私が長いVARCHARがある列のロトの

CREATE TABLE IF NOT EXISTS client_details (
id BIGINT AUTO_INCREMENT PRIMARY KEY, 
client_description VARCHAR(1024), 
reuse_refresh_tokens BOOLEAN DEFAULT true NOT NULL, 
dynamically_registered BOOLEAN DEFAULT false NOT NULL, 
allow_introspection BOOLEAN DEFAULT false NOT NULL, 
id_token_validity_seconds BIGINT DEFAULT 600 NOT NULL, 
client_id VARCHAR(256), 
client_secret VARCHAR(2048), 
access_token_validity_seconds BIGINT, 
refresh_token_validity_seconds BIGINT, 

application_type VARCHAR(256), 
    client_name VARCHAR(256), 
token_endpoint_auth_method VARCHAR(256), 
subject_type VARCHAR(256), 

logo_uri VARCHAR(2048), 
policy_uri VARCHAR(2048), 
client_uri VARCHAR(2048), 
tos_uri VARCHAR(2048), 

jwks_uri VARCHAR(2048), 
jwks VARCHAR(8192), 
sector_identifier_uri VARCHAR(2048), 

request_object_signing_alg VARCHAR(256), 
user_info_signed_response_alg VARCHAR(256), 
user_info_encrypted_response_alg VARCHAR(256), 
user_info_encrypted_response_enc VARCHAR(256), 

id_token_signed_response_alg VARCHAR(256), 
id_token_encrypted_response_alg VARCHAR(256), 
id_token_encrypted_response_enc VARCHAR(256), 
token_endpoint_auth_signing_alg VARCHAR(256), 

default_max_age BIGINT, 
require_auth_time BOOLEAN, 
created_at TIMESTAMP NULL, 
initiate_login_uri VARCHAR(2048), 
clear_access_tokens_on_refresh BOOLEAN DEFAULT true NOT NULL, 

UNIQUE (client_id) 
); 
+0

行サイズが大きすぎます=データベースが正規化されていません – e4c5

答えて

0

を作成しようとしているテーブルであるTEXTまたはBLOBのに

をいくつかの列を変更する必要があります。あなたは本当にそれが長くなる必要がありますか?

とにかく、私はあなたのSQLステートメントを試してみました。

違いは、私が設定されていることである。

innodb_file_per_table=ON 
innodb_default_row_format=dynamic 

MySQLのバージョンに応じて、あなたも設定する必要があります。

innodb_file_format=Barracuda 

これらのオプションはInnoDBの店VARCHAR、BLOB方法を変更し、行のメインページからコンテンツをより多く移動し、余分なページに移動します。これにより、より多くの列を定義できるようになります。

関連する問題