Mysql不返回数据但数据有

标签 mysql tokudb

今天遇到了很奇怪的问题。 查询就像基本数学一样简单:

MariaDB [betradar]> select id,id_event,id_bookmaker  from event_outcome where id like '%16069689%';
+----------+----------+--------------+
| id       | id_event | id_bookmaker |
+----------+----------+--------------+
| 16069689 |    11198 |           14 |
+----------+----------+--------------+

但是这个让我发疯:

MariaDB [betradar]> select id,id_event  from event_outcome where id=16069689;
Empty set (0.00 sec)

也就是说:尽管数据就在那里,但选择不会返回任何数据。这是与聚集键相关的问题吗? 我的 table :

 CREATE TABLE `event_outcome` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `id_event` int(11) unsigned NOT NULL,
  `id_outcome` int(11) unsigned NOT NULL,
  `id_bookmaker` int(11) unsigned NOT NULL,
  `outcome_type` varchar(50) DEFAULT NULL ,
  `quotation` decimal(10,2) NOT NULL,
  `quotation_datetime` datetime DEFAULT NULL,
  `is_last` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0',
  `create_time` int(11) DEFAULT '0',
  `update_time` int(11) DEFAULT '0',
  `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `mp_read` tinyint(4) DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `idx_event` (`id_event`),
  KEY `idx_outcome` (`id_outcome`),
  KEY `idx_bookmaker` (`id_bookmaker`),
  KEY `idx_is_last` (`is_last`),
  KEY `idx_outcome_type` (`outcome_type`),
  KEY `clstr_event` (`id_event`,`id_outcome`,`id_bookmaker`,`is_last`,`mp_read`) `clustering`=yes
) ENGINE=TokuDB AUTO_INCREMENT=16632394 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT `compression`='tokudb_zlib'

最佳答案

我不明白你原来的查询,为什么你会有一个 WHERE 子句并将 int 与 like 表达式相匹配?

如果您想查看聚类索引是否是问题所在,您有两个选择:

  • 删除它,然后重新运行查询
  • 强制两个查询使用 index hint 的 PK 索引

关于Mysql不返回数据但数据有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27918803/

相关文章:

mysql - 加速tokudb "alter table ... engine=TokuDB”

MYSQL/MariaDB - TokuDB ...设备上没有剩余空间

当数据库中不存在记录时PHP怎么办

mySQL 5.7 使用新的 json 功能将行作为 json 返回

mysql - 查询两个表中的所有记录

mysql - 改进mysql加载数据

mysql_query() 在 php 退出后继续运行

mysql - 处理事务 mariadb 的中止

没有子查询的Python mysql更新导致子查询错误

mysql - 创建多个小表或创建一个非常大的表,在mysql中推荐使用哪种方式