我使用了myisam表的旧数据库,使用了mariadb,并希望尝试移动到xtradb进行行级锁定。每个表有27列、主索引和其他11个索引。具有索引的列具有多个具有where、group和order的选择。我做了一些测试我有点困惑。
有大约6M行的表.磁盘空间(数据+键):myisam -915 with (xtradb) -2011 with
在innodb(xtradb)上,我尝试在索引列上使用多个where、group和order的大型select,它需要花费63s,但是如果我删除所有其他索引--仅限主停留时间,则需要21s。
看起来,如果我不使用事务、外键、联接、etc...on这个表,那么主键是可以的,其他的都是无用的。但我觉得这很奇怪
我没有硬件来进行更好的测试,你们认为将所有表转换为inno(xtra)并删除除生产环境中的主要索引之外的所有索引是个好主意吗?
发布于 2013-12-30 23:57:08
您应该按用法进行索引。如果您为了工作负载的一小部分而删除所有索引,您将在其他地方遭受痛苦。运行pt-重复-密钥检查器第一,并删除多余的钥匙。然后用pt查询摘要检查您的查询,并通过重新索引或重写它们来清除性能不佳的查询。您可以将EXPLAIN的输出粘贴到表结构和状态中,以便对有问题的查询进行进一步的帮助调优。
https://dba.stackexchange.com/questions/55767
复制相似问题