0

我正在尝试在 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 列时,导入工作。

我可以导入的列数有限制吗?

还是一张表只能有这么多TINYTEXTVARCHAR列?

为什么会引发此错误,我该如何解决?我可以在 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;

4

2 回答 2

0
  1. 更新innodb_file_per_table=1innodb_file_format=Barracuda在您的 MySQL 配置中。
  2. 但是更改配置文件不会对您当前正在运行的实例生效,因此您必须重新启动 mysqld,或者更改正在运行的实例中的变量:

    SET GLOBAL innodb_file_per_table=1;
    SET GLOBAL innodb_file_format=Barracuda;
    
  3. 现在重建表,您可以使用梭子鱼。

    ALTER TABLE MyTableWith163Columns ROW_FORMAT=DYNAMIC;
    
  4. 确认更改生效:

    SHOW CREATE TABLE MyTableWith163Columns;
    

DYNAMIC 行格式可能足以让您插入数据。压缩不是必需的。当行变得太大时,动态和压缩行格式都会改变博客/文本列的存储方式,并且基本上允许每行有更多列。

有关详细信息,请阅读https://www.percona.com/blog/2010/02/09/blob-storage-in-innodb/

于 2016-11-23T23:25:04.833 回答
0

我建议使用 163 列考虑一个新结构。但目前 ROWFORMAT=COMPRESSED 可能会有所帮助。

ALTER TABLE tablename
ENGINE=InnoDB
ROW_FORMAT=COMPRESSED;

或者当您谈论配置文件时:您可以改用 InnoDB Barracuda。

在 my.cnf 中:

innodb_file_per_table    
innodb_file_format = Barracuda
于 2016-11-23T22:42:15.763 回答