欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【爱写就写 Mysql避免表已满的错误出现】,下面是详细的分享!
爱写就写 Mysql避免表已满的错误出现
表已满错误出现的方式有数种:
·你正在使用低于3.23版的MySQL服务器,而且“内存中”临时表超过了tmp_table_size字节。要想避免该问题,可使用“-O tmp_table_size=val”选项以便mysqld增加临时表的大小,或在发出有问题的查询之前,使用SQL选项SQL_BIG_TABLES。
也可以使用“--big-tables”选项启动mysqld。它与使用针对所有查询的SQL_BIG_TABLES完全相同。
自MySQL 3.23起,该问题应不再出现。如果“内存中”临时表超过tmp_table_size,服务器会自动将其转换为基于磁盘的MyISAM表。
·你正在使用InnoDB表,并超出了InnoDB表空间。在该情况下,解决方法是增加InnoDB表空间。
·你正在仅支持2GB文件的操作系统上使用ISAM或MyISAM表,数据文件或索引文件达到了该限制值。
·你正在使用MyISAM表,而且表所需的空间超过内部指针允许的大小。如果在创建表时未指定MAX_ROWS表,MySQL将使用myisam_data_pointer_size系统变量。默认值为6字节,它足以容纳65536TB数据。
使用该语句,可检查最大数据/索引大小:
| SHOW TABLE STATUS FROM database LIKE 'tbl_name'; 也可以使用myisamchk -dv /path/to/table-index-file。 |
如果指针大小过小,可使用ALTER TABLE更正该问题:
|
ALTER TABLE tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn; |
以上所分享的是关于爱写就写 Mysql避免表已满的错误出现,下面是编辑为你推荐的有价值的用户互动:
相关问题:MYSQL联表删除,语句出现错误求解
答:1、从数据表t1 中把那些id值在数据表t2 里有匹配的记录全删除掉 DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id 2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉 DELETE t1 FROM t1 LEFT ... >>详细
相关问题:这是用php5写的sql语句,但是有错误,求大神改正,...
答:$str="SELECT username,password FROM member WHERE usename='$name'"; php里这样写就行。 预防数据库攻击的正确做法: >>详细
相关问题:mysql 错误代码1217 MYSQL外键约束检查失败,删除...
答:DELETE t1 FROM t1,t2 WHERE t1.id=t2.id或者:DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id还可以用left join等联结查询来删除 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
