我正在尝试在phpMyAdmin中的Digital Ocean LAMP堆栈上导入SQL表,我收到此错误:
#1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
我只有一张表,但它有 ~350列。我对大多数列使用TINYTEXT
,认为使用的内存少于VARCHAR
。
当我删除~100列时,导入有效。
我可以导入的列数是否有限制?
或者表格只能包含这么多TINYTEXT
和VARCHAR
列吗?
为什么会抛出此错误,我该如何解决?我可以在mySQL配置文件中设置或更新mySQL设置吗?这是一个VPS,我有root权限,所以如果需要,我可以更新一些东西。
这是我的表:
CREATE TABLE `rets_properties` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`acres` TINYTEXT,
`addr` TINYTEXT DEFAULT NULL,
`addl_mo_Fee` int(9) DEFAULT NULL,
`all_inc` TINYTEXT,
`area` TINYTEXT,
`a_c` TINYTEXT,
`yr_built` TINYTEXT,
`sqft` TINYTEXT,
`apt_num` TINYTEXT,
`area_code` TINYTEXT,
`tv` int(9) DEFAULT NULL,
`ass_year` int(4) DEFAULT NULL,
`bsmt1_out` TINYTEXT,
`bsmt2_out` TINYTEXT,
`br` int(1) DEFAULT NULL,
`br_plus` int(1) DEFAULT NULL,
`cable` TINYTEXT DEFAULT NULL,
`cac_inc` TINYTEXT DEFAULT NULL,
`central_vac` TINYTEXT DEFAULT NULL,
`cert_lvl` TINYTEXT DEFAULT NULL,
`comel_inc` TINYTEXT DEFAULT NULL,
`community` TINYTEXT DEFAULT NULL,
`community_code` TINYTEXT DEFAULT NULL,
`dom` int(5) DEFAULT NULL,
`cross_st` TINYTEXT DEFAULT NULL,
`disp_addr` TINYTEXT,
`drive` TINYTEXT DEFAULT NULL,
`elevator` TINYTEXT DEFAULT NULL,
`energy_cert` TINYTEXT,
`constr1_out` TINYTEXT DEFAULT NULL,
`constr2_out` TINYTEXT DEFAULT NULL,
`extras` TINYTEXT DEFAULT NULL,
`den_fr` TINYTEXT,
`farm_agri` TINYTEXT DEFAULT NULL,
`fpl_num` TINYTEXT DEFAULT NULL,
`oh_date1` TINYTEXT DEFAULT NULL,
`oh_from1` TINYTEXT DEFAULT NULL,
`oh_to1` TINYTEXT DEFAULT NULL,
`comp_pts` TINYTEXT,
`furnished` TINYTEXT DEFAULT NULL,
`gar_spaces` int(3) DEFAULT NULL,
`gar_type` TINYTEXT DEFAULT NULL,
`green_pis` TINYTEXT,
`heat_inc` TINYTEXT,
`fuel` TINYTEXT DEFAULT NULL,
`heating` TINYTEXT DEFAULT NULL,
`hydro_inc` TINYTEXT,
`num_kit` int(1) DEFAULT NULL,
`kit_plus` int(1) DEFAULT NULL,
`laundry` TINYTEXT DEFAULT NULL,
`laundry_lev` TINYTEXT DEFAULT NULL,
`lease_term` TINYTEXT DEFAULT NULL,
`legal_desc` TINYTEXT DEFAULT NULL,
`level1` TINYTEXT DEFAULT NULL,
`level10` TINYTEXT DEFAULT NULL,
`level11` TINYTEXT DEFAULT NULL,
`level12` TINYTEXT DEFAULT NULL,
`level2` TINYTEXT DEFAULT NULL,
`level3` TINYTEXT DEFAULT NULL,
`level4` TINYTEXT DEFAULT NULL,
`level5` TINYTEXT DEFAULT NULL,
`level6` TINYTEXT DEFAULT NULL,
`level7` TINYTEXT DEFAULT NULL,
`level8` TINYTEXT DEFAULT NULL,
`level9` TINYTEXT DEFAULT NULL,
`rltr` TINYTEXT DEFAULT NULL,
`lp_dol` int(11) DEFAULT NULL,
`depth` int(6) DEFAULT NULL,
`front_ft` int(8) DEFAULT NULL,
`irreg` TINYTEXT DEFAULT NULL,
`lotsz_code` TINYTEXT DEFAULT NULL,
`mmap_page` int(3) DEFAULT NULL,
`mmap_col` int(2) DEFAULT NULL,
`mmap_row` TINYTEXT,
`ml_num` TINYTEXT DEFAULT NULL,
`municipality` TINYTEXT DEFAULT NULL,
`municipality_district` TINYTEXT DEFAULT NULL,
`municipality_code` TINYTEXT DEFAULT NULL,
`oh_dt_stamp` TINYTEXT DEFAULT NULL,
`orig_dol` int(11) DEFAULT NULL,
`oth_struc1_out` TINYTEXT DEFAULT NULL,
`oth_struc2_out` TINYTEXT DEFAULT NULL,
`outof_area` TINYTEXT DEFAULT NULL,
`park_chgs` int(6) DEFAULT NULL,
`prkg_inc` TINYTEXT,
`park_spcs` int(3) DEFAULT NULL,
`pay_freq` TINYTEXT DEFAULT NULL,
`handi_equipped` TINYTEXT,
`parcel_id` TINYTEXT DEFAULT NULL,
`pix_updt` date DEFAULT NULL,
`pool` TINYTEXT DEFAULT NULL,
`occ` TINYTEXT DEFAULT NULL,
`zip` TINYTEXT DEFAULT NULL,
`pvt_ent` TINYTEXT,
`prop_feat1_out` TINYTEXT DEFAULT NULL,
`prop_feat2_out` TINYTEXT DEFAULT NULL,
`prop_feat3_out` TINYTEXT DEFAULT NULL,
`prop_feat4_out` TINYTEXT DEFAULT NULL,
`prop_feat5_out` TINYTEXT DEFAULT NULL,
`prop_feat6_out` TINYTEXT DEFAULT NULL,
`county` TINYTEXT DEFAULT NULL,
`ad_text` TINYTEXT DEFAULT NULL,
`retirement` TINYTEXT,
`rm1_out` TINYTEXT DEFAULT NULL,
`rm1_dc1_out` TINYTEXT DEFAULT NULL,
`rm1_dc2_out` TINYTEXT DEFAULT NULL,
`rm1_dc3_out` TINYTEXT DEFAULT NULL,
`rm1_len` int(5) DEFAULT NULL,
`rm1_wth` int(5) DEFAULT NULL,
`rm10_out` TINYTEXT DEFAULT NULL,
`rm10_dc1_out` TINYTEXT DEFAULT NULL,
`rm10_dc2_out` TINYTEXT DEFAULT NULL,
`rm10_dc3_out` TINYTEXT DEFAULT NULL,
`rm10_len` int(5) DEFAULT NULL,
`rm10_wth` int(5) DEFAULT NULL,
`rm11_out` TINYTEXT DEFAULT NULL,
`rm11_dc1_out` TINYTEXT DEFAULT NULL,
`rm11_dc2_out` TINYTEXT DEFAULT NULL,
`rm11_dc3_out` TINYTEXT DEFAULT NULL,
`rm11_len` int(5) DEFAULT NULL,
`rm11_wth` int(5) DEFAULT NULL,
`rm12_out` TINYTEXT DEFAULT NULL,
`rm12_dc1_out` TINYTEXT DEFAULT NULL,
`rm12_dc2_out` TINYTEXT DEFAULT NULL,
`rm12_dc3_out` TINYTEXT DEFAULT NULL,
`rm12_len` int(5) DEFAULT NULL,
`rm12_wth` int(5) DEFAULT NULL,
`rm2_out` TINYTEXT DEFAULT NULL,
`rm2_dc1_out` TINYTEXT DEFAULT NULL,
`rm2_dc2_out` TINYTEXT DEFAULT NULL,
`rm2_dc3_out` TINYTEXT DEFAULT NULL,
`rm2_len` int(5) DEFAULT NULL,
`rm2_wth` int(5) DEFAULT NULL,
`rm3_out` TINYTEXT DEFAULT NULL,
`rm3_dc1_out` TINYTEXT DEFAULT NULL,
`rm3_dc2_out` TINYTEXT DEFAULT NULL,
`rm3_dc3_out` TINYTEXT DEFAULT NULL,
`rm3_len` int(5) DEFAULT NULL,
`rm3_wth` int(5) DEFAULT NULL,
`rm4_out` TINYTEXT DEFAULT NULL,
`rm4_dc1_out` TINYTEXT DEFAULT NULL,
`rm4_dc2_out` TINYTEXT DEFAULT NULL,
`rm4_dc3_out` TINYTEXT DEFAULT NULL,
`rm4_len` int(5) DEFAULT NULL,
`rm4_wth` int(5) DEFAULT NULL,
`rm5_out` TINYTEXT DEFAULT NULL,
`rm5_dc1_out` TINYTEXT DEFAULT NULL,
`rm5_dc2_out` TINYTEXT DEFAULT NULL,
`rm5_dc3_out` TINYTEXT DEFAULT NULL,
`rm5_len` int(5) DEFAULT NULL,
`rm5_wth` int(5) DEFAULT NULL,
`rm6_out` TINYTEXT DEFAULT NULL,
`rm6_dc1_out` TINYTEXT DEFAULT NULL,
`rm6_dc2_out` TINYTEXT DEFAULT NULL,
`rm6_dc3_out` TINYTEXT DEFAULT NULL,
`rm6_len` int(5) DEFAULT NULL,
`rm6_wth` int(5) DEFAULT NULL,
`rm7_out` TINYTEXT DEFAULT NULL,
`rm7_dc1_out` TINYTEXT DEFAULT NULL,
`rm7_dc2_out` TINYTEXT DEFAULT NULL,
`rm7_dc3_out` TINYTEXT DEFAULT NULL,
`rm7_len` int(5) DEFAULT NULL,
`rm7_wth` int(5) DEFAULT NULL,
`rm8_out` TINYTEXT DEFAULT NULL,
`rm8_dc1_out` TINYTEXT DEFAULT NULL,
`rm8_dc2_out` TINYTEXT DEFAULT NULL,
`rm8_dc3_out` TINYTEXT DEFAULT NULL,
`rm8_len` int(5) DEFAULT NULL,
`rm8_wth` int(5) DEFAULT NULL,
`rm9_out` TINYTEXT DEFAULT NULL,
`rm9_dc1_out` TINYTEXT DEFAULT NULL,
`rm9_dc2_out` TINYTEXT DEFAULT NULL,
`rm9_dc3_out` TINYTEXT DEFAULT NULL,
`rm9_len` int(5) DEFAULT NULL,
`rm9_wth` int(5) DEFAULT NULL,
`rm_srch` int(2) DEFAULT NULL,
`rms` int(2) DEFAULT NULL,
`rooms_plus` int(1) DEFAULT NULL,
`s_r` TINYTEXT DEFAULT NULL,
`oh_date2` TINYTEXT DEFAULT NULL,
`oh_from2` TINYTEXT DEFAULT NULL,
`oh_to2` TINYTEXT DEFAULT NULL,
`vend_pis` TINYTEXT DEFAULT NULL,
`sewer` TINYTEXT DEFAULT NULL,
`spec_des1_out` TINYTEXT DEFAULT NULL,
`spec_des2_out` TINYTEXT DEFAULT NULL,
`spec_des3_out` TINYTEXT DEFAULT NULL,
`spec_des4_out` TINYTEXT DEFAULT NULL,
`spec_des5_out` TINYTEXT DEFAULT NULL,
`spec_des6_out` TINYTEXT DEFAULT NULL,
`status` TINYTEXT DEFAULT NULL,
`st_num` TINYTEXT DEFAULT NULL,
`st_sfx` TINYTEXT DEFAULT NULL,
`st_dir` TINYTEXT,
`st` TINYTEXT DEFAULT NULL,
`style` TINYTEXT DEFAULT NULL,
`yr` int(4) DEFAULT NULL,
`taxes` int(8) DEFAULT NULL,
`oh_date3` TINYTEXT DEFAULT NULL,
`oh_from3` TINYTEXT DEFAULT NULL,
`oh_to3` TINYTEXT DEFAULT NULL,
`type_own_srch` TINYTEXT DEFAULT NULL,
`type_own1_out` TINYTEXT DEFAULT NULL,
`uffi` TINYTEXT DEFAULT NULL,
`timestamp_sql` date DEFAULT NULL,
`util_cable` TINYTEXT,
`gas` TINYTEXT,
`elec` TINYTEXT,
`util_tel` TINYTEXT,
`vtour_updt` date DEFAULT NULL,
`tour_url` TINYTEXT DEFAULT NULL,
`bath_tot` int(2) DEFAULT NULL,
`wcloset_t1` int(1) DEFAULT NULL,
`wcloset_p1` int(1) DEFAULT NULL,
`wcloset_t1lvl` TINYTEXT DEFAULT NULL,
`wcloset_t2` int(1) DEFAULT NULL,
`wcloset_p2` int(1) DEFAULT NULL,
`wcloset_t2lvl` TINYTEXT DEFAULT NULL,
`wcloset_t3` int(1) DEFAULT NULL,
`wcloset_p3` int(1) DEFAULT NULL,
`wcloset_t3lvl` TINYTEXT DEFAULT NULL,
`wcloset_t4` int(1) DEFAULT NULL,
`wcloset_p4` int(1) DEFAULT NULL,
`wcloset_t4lvl` TINYTEXT DEFAULT NULL,
`wcloset_t5` int(1) DEFAULT NULL,
`wcloset_p5` int(1) DEFAULT NULL,
`wcloset_t5lvl` TINYTEXT DEFAULT NULL,
`water` TINYTEXT DEFAULT NULL,
`water_inc` TINYTEXT,
`wtr_suptyp` TINYTEXT DEFAULT NULL,
`waterfront` TINYTEXT DEFAULT NULL,
`zoning` TINYTEXT DEFAULT NULL,
`lse_terms` TINYTEXT DEFAULT NULL,
`Idx_dt` date DEFAULT NULL,
`lng` decimal(65,7) DEFAULT NULL,
`lat` decimal(65,7) DEFAULT NULL,
`num_images` int(2) DEFAULT NULL,
`neighbourhood` TINYTEXT DEFAULT NULL,
`share_perc` TINYTEXT DEFAULT NULL,
`patio_ter` TINYTEXT DEFAULT NULL,
`bldg_amen1_out` TINYTEXT DEFAULT NULL,
`bldg_amen2_out` TINYTEXT DEFAULT NULL,
`bldg_amen3_out` TINYTEXT DEFAULT NULL,
`bldg_amen4_out` TINYTEXT DEFAULT NULL,
`bldg_amen5_out` TINYTEXT DEFAULT NULL,
`bldg_amen6_out` TINYTEXT DEFAULT NULL,
`insur_bldg` TINYTEXT DEFAULT NULL,
`corp_num` TINYTEXT DEFAULT NULL,
`condo_corp` TINYTEXT DEFAULT NULL,
`cond_txinc` TINYTEXT DEFAULT NULL,
`ens_lndry` TINYTEXT DEFAULT NULL,
`condo_exp` TINYTEXT DEFAULT NULL,
`gar` TINYTEXT DEFAULT NULL,
`stories` TINYTEXT DEFAULT NULL,
`locker` TINYTEXT DEFAULT NULL,
`locker_num` TINYTEXT DEFAULT NULL,
`maint` TINYTEXT DEFAULT NULL,
`park_lgl_desc1` TINYTEXT DEFAULT NULL,
`park_lgl_desc2` TINYTEXT DEFAULT NULL,
`park_spc1` TINYTEXT DEFAULT NULL,
`park_spc2` TINYTEXT DEFAULT NULL,
`park_desig` TINYTEXT DEFAULT NULL,
`park_desig_2` TINYTEXT DEFAULT NULL,
`park_fac` TINYTEXT DEFAULT NULL,
`pets` TINYTEXT DEFAULT NULL,
`prop_mgmt` TINYTEXT DEFAULT NULL,
`unit_num` int(100) DEFAULT NULL,
`treb_class` TINYTEXT DEFAULT NULL,
`amps` TINYTEXT,
`area_infl1_out` TINYTEXT,
`area_infl2_out` TINYTEXT,
`perc_bldg` TINYTEXT,
`bay_size2` TINYTEXT,
`bay_size2_in` TINYTEXT,
`bay_size1` TINYTEXT,
`bay_size1_in` TINYTEXT,
`dba` TINYTEXT,
`prop_type` TINYTEXT,
`chattels` TINYTEXT,
`ceil_ht` TINYTEXT,
`ceil_ht_in` TINYTEXT,
`com_cn_fee` TINYTEXT,
`com_chgs` TINYTEXT,
`crane` TINYTEXT,
`days_open` TINYTEXT,
`trlr_pk_spt` TINYTEXT,
`shpdrsdmnu` TINYTEXT,
`shpdrsdmhtft` TINYTEXT,
`shpdrsdmhtin` TINYTEXT,
`shpdrsdmwdft` TINYTEXT,
`shpdrsdmwdin` TINYTEXT,
`shpdrsdlnu` TINYTEXT,
`shpdrsdlhtft` TINYTEXT,
`shpdrsdlhtin` TINYTEXT,
`shpdrsdlwdft` TINYTEXT,
`shpdrsdlwdin` TINYTEXT,
`employees` TINYTEXT,
`inventory` TINYTEXT,
`exp_actest` TINYTEXT,
`fin_stmnt` TINYTEXT,
`franchise` TINYTEXT,
`freestandg` TINYTEXT,
`shpdrsglnu` TINYTEXT,
`shpdrsglhtft` TINYTEXT,
`shpdrsglhtin` TINYTEXT,
`shpdrsglwdft` TINYTEXT,
`shpdrsglwdin` TINYTEXT,
`gross_inc` TINYTEXT,
`heat_exp` TINYTEXT,
`hours_open` TINYTEXT,
`hydro_exp` TINYTEXT,
`ind_area` TINYTEXT,
`ind_areacd` TINYTEXT,
`insur` TINYTEXT,
`lp_code` TINYTEXT,
`llbo` TINYTEXT,
`lot_code` TINYTEXT,
`mgmt` TINYTEXT,
`terms` TINYTEXT,
`minrenttrm` TINYTEXT,
`net_inc` TINYTEXT,
`oa_area` TINYTEXT,
`off_areacd` TINYTEXT,
`oper_exp` TINYTEXT,
`orig_lp_code` TINYTEXT,
`other` TINYTEXT,
`out_storg` TINYTEXT,
`perc_rent` TINYTEXT,
`rail` TINYTEXT,
`retail_a` TINYTEXT,
`retail_ac` TINYTEXT,
`seats` TINYTEXT,
`soil_test` TINYTEXT,
`sprinklers` TINYTEXT,
`survey` TINYTEXT,
`taxes_exp` TINYTEXT,
`tot_area` TINYTEXT,
`tot_areacd` TINYTEXT,
`shpdrstlnu` TINYTEXT,
`shpdrstlhtft` TINYTEXT,
`shpdrstlhtin` TINYTEXT,
`shpdrstlwdft` TINYTEXT,
`shpdrstlwdin` TINYTEXT,
`type_taxes` TINYTEXT,
`bus_type` TINYTEXT,
`utilities` TINYTEXT,
`vac_perc` TINYTEXT,
`volts` TINYTEXT,
`water_exp` TINYTEXT,
`yr_exp` TINYTEXT,
`occupancy` TINYTEXT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
答案 0 :(得分:0)
我建议考虑163个柱子来考虑一个新的结构。但目前ROWFORMAT = COMPRESSED可以提供帮助。
ALTER TABLE tablename
ENGINE=InnoDB
ROW_FORMAT=COMPRESSED;
或者当您谈论配置文件时:您可以转而使用InnoDB Barracuda。
在my.cnf:
innodb_file_per_table
innodb_file_format = Barracuda
答案 1 :(得分:0)
innodb_file_per_table=1
和innodb_file_format=Barracuda
。但更改配置文件并不会对当前运行的实例生效,因此您必须重新启动mysqld,否则更改正在运行的实例中的变量:
SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_file_format=Barracuda;
现在重建表,你可以使用Barracuda。
ALTER TABLE MyTableWith163Columns ROW_FORMAT=DYNAMIC;
确认更改生效:
SHOW CREATE TABLE MyTableWith163Columns;
DYNAMIC行格式可能足以允许您插入数据。 COMPRESSED没有必要。当行变得太大时,DYNAMIC和COMPRESSED行格式都会更改博客/文本列的存储方式,并且基本上允许每行包含更多列。
有关详细信息,请阅读https://www.percona.com/blog/2010/02/09/blob-storage-in-innodb/