1

为什么这个查询失败?

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%'

4

1 回答 1

0

我解决了问题,

显然,我使用的表将 50 多个字段设置为 VARCHAR 255,这太大了,因此通过将字段大小减小到准确的大小,问题得到了解决。

于 2012-04-25T14:44:10.523 回答