недостающие данные в хэше раздела по id - PullRequest
0 голосов
/ 09 ноября 2018

Я столкнулся с проблемой в использовании разделов таблицы MySQL. создание таблицы

CREATE TABLE `talk_record_gz` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `eid` int(10) unsigned NOT NULL DEFAULT '0',
  `cc_number` varchar(128) NOT NULL DEFAULT '',
  `gz_res_token` varchar(512) NOT NULL DEFAULT '',
  `gz_file_name` varchar(512) NOT NULL DEFAULT '',
  `gz_status` tinyint(2) NOT NULL DEFAULT '1' COMMENT '1=wait,2=uploading,3=success',
  PRIMARY KEY (`id`),
  KEY `idx_eid` (`eid`),
  KEY `idx_ccnumber` (`cc_number`),
  KEY `idx_token` (`gz_res_token`(255))
) ENGINE=InnoDB AUTO_INCREMENT=504238 DEFAULT CHARSET=utf8
/*!50100 PARTITION BY HASH (id)
PARTITIONS 10 */ 

Проблема:

выполнить sql ниже, не получит данных (ДА, мы должны отфильтровать идентификатор, так как таблица разбивается на разделы по хэшу [id], но для полного поиска данные должны быть найдены в любом случае)

select * from talk_record_gz where cc_number='api00400013602154166222649626fD3conf_1541662225484' and eid=79362;

но если мы удалим фильтр EID = 79632, как показано ниже

select * from talk_record_gz where cc_number='api00400013602154166222649626fD3conf_1541662225484';

мы получим данные, как показано ниже enter image description here

eid (int), показанный на рисунке выше, точно такой же, как мы добавили в первом sql.

Я предположил, что проблема вызвана "набором символов", но не уверен, что из-за eid это тип int.

PAT: только первая специальная строка будет пропущена первым sql, большинство строк в этой таблице можно найти по фильтру eid + cc_number.

Любое предложение приветствуется.

...