线程中的MySQL断言失败

时间:2012-04-10 12:42:58

标签: mysql assertion mysql-error-2013

为什么此查询失败?

SELECT
    SUB_COMMODITY,
    `VOL` AS Sales,
    `VOL_CHANGE` AS Dollar_change,
    `VOL_SHARE` AS Dollar_share,
    `VOL_SHARE_CHANGE` AS Dollar_share_change,
    `U_VOL` AS Unit_sales,
    `UVOL_CHANGE` AS Unit_change,
    `UVOL_SHARE` AS Unit_share,
    `UVOL_SHARE_CHANGE` AS Unit_share_change,
    `VOL_MKT_SHARE` AS Market_share,
    `PERIOD`
FROM `calculatedsummary`
WHERE WEEK = 52
AND PERIOD BETWEEN '2012-03-01' AND '2012-03-31'
AND MKT = '000 Total Market'
AND COMMODITY = 'CONDIMENTS SAUCES'
AND SUB_COMMODITY = 'BBQ SAUCE'
AND BRAND_FAMILY_DESC = 'Total'
AND session_id = 'ADBCDEFGHIJQLMNOPQRSTUVWXYZ'

MySQL服务器日志:

  • InnoDB:文件row0sel.c第2441行中的线程2292中的断言失败
  • InnoDB:断言失败:buf + data_len< = original_buf + buf_len
  • InnoDB:我们故意生成一个内存陷阱。
  • InnoDB:向http://bugs.mysql.com提交详细的错误报告。
  • InnoDB:如果你重复断言失败或崩溃,甚至
  • InnoDB:在mysqld启动之后,可能会有
  • InnoDB:
  • 中的腐败
  • InnoDB表空间。请参阅
  • InnoDB:http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
  • InnoDB:关于强制恢复。
  • InnoDB:线程1544在文件os0sync.c第474行中停止
  • InnoDB:线程2028在文件os0sync.c第781行停止

并且还得到#2013错误 - 在查询期间与MySQL服务器的连接丢失

但如果我改变

  
    

session_id ='ADBCDEFGHIJQLMNOPQRSTUVWXYZ'

         

         

session_id LIKE'%ADBCDEFGHIJQLMNOPQRSTUVWXYZ%'

  

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,

显然我使用过的表有超过50个字段设置为VARCHAR 255而且太大了,所以通过将字段大小减小到准确的大小,问题就解决了。