Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-在什么应该是重复表的基数上存在巨大差异_Mysql_Indexing - Fatal编程技术网

MySQL-在什么应该是重复表的基数上存在巨大差异

MySQL-在什么应该是重复表的基数上存在巨大差异,mysql,indexing,Mysql,Indexing,在我的开发服务器上,我有一个基数为200的列索引 这个表大约有600万行,我已经确认它在生产服务器上的行数是相同的 但是,生产服务器索引的基数为31938 它们都是mysql 5.5,但我的开发服务器是Ubuntu服务器13.10,生产服务器是Windows server 2012 关于什么会导致完全相同的数据出现这种差异,有什么想法吗 数据是从dev服务器的MySQL转储加载到生产服务器的 编辑:值得注意的是,我有一些查询在我的开发服务器上运行大约需要15分钟,而由于我认为是这些索引问题,这些

在我的开发服务器上,我有一个基数为200的列索引

这个表大约有600万行,我已经确认它在生产服务器上的行数是相同的

但是,生产服务器索引的基数为31938

它们都是mysql 5.5,但我的开发服务器是Ubuntu服务器13.10,生产服务器是Windows server 2012

关于什么会导致完全相同的数据出现这种差异,有什么想法吗

数据是从dev服务器的MySQL转储加载到生产服务器的

编辑:值得注意的是,我有一些查询在我的开发服务器上运行大约需要15分钟,而由于我认为是这些索引问题,这些查询似乎永远在生产服务器上运行。子查询中的行数不同。

可能会帮助您验证表是否相同

-- a table
create table test.t ( id int unsigned not null auto_increment primary key, r float );
-- some data  ( 18000 rows or so )
insert into test.t (r) select rand() from mysql.user join mysql.user u2;
-- a duplicate
create table test.t2 select * from test.t;
-- introduce a difference somewhere in there 
update test.t2 set r = 0 order by rand() limit 1;
-- and prove the tables are different easily:

mysql> checksum table test.t;
+--------+------------+
| Table  | Checksum   |
+--------+------------+
| test.t | 2272709826 |
+--------+------------+
1 row in set (0.00 sec)

mysql> checksum table test.t2
    -> ;
+---------+-----------+
| Table   | Checksum  |
+---------+-----------+
| test.t2 | 312923301 |
+---------+-----------+
1 row in set (0.01 sec)
当心校验和锁表

对于更高级的功能,可以同时使用校验和表和同步表(尽管它基于主/从复制场景,因此可能不适合您)


除校验和之外,您可以考虑查看<代码>修复< /代码>或<代码>优化< /代码>。 在生产表上运行

analyze
,我得到一行,Msg_type=status,Msg_text=OKI得到匹配的校验和。好提示