gpt4 book ai didi

mysql - 制作一个表innodb和分区会提高mysql的性能吗?

转载 作者:可可西里 更新时间:2023-11-01 08:44:47 25 4
gpt4 key购买 nike

我有一个 Myisam 表,其中包含 2 列的复合唯一键和 9000 万条数据。现在我们面临内存和负载问题,通过网络后我计划包括分区并将该表更改为 Innodb 以获得更好的性能。但我有以下担忧:

  1. 改用innodb会有很大的宕机时间,有没有可能把宕机时间降到最低?

  2. 大多数选择查询都在我计划对其进行散列分区的键的特定列上,它会对另一个键列上的查询产生多大影响?

这些变化是否会将性能提高到理论上提到的程度?对于这种情况有没有更好的解决方案。任何建议或经验都会有所帮助。

我的查询很简单

Select * from Table where Col1="Value"
从表中选择 *,其中 Col1="Value"和 Col2 IN (V1,V2,V3)

插入非常频繁。

最佳答案

InnoDB 将可能帮助一些。正如我在 My conversion blog 中所述,转换为 InnoDB 会带来一些问题。 .

分区本身不会带来性能提升。 My partitioning blog列出了 4 个案例,在这些案例中,您可以通过更改设计来提高性能。

无论使用何种引擎,您的两个查询都将受益于

INDEX(col1, col2)

任何形式的分区都无济于事。 HASH 分区尤其没用。

转换到 InnoDB 将需要大量停机时间,除非 pt-online-schema-change 适合您的情况。研究一下。

另请阅读我的回答 和对 Can i set up Mysql to auto-partition?了解更多详情。

添加该索引可能是主要的性能提升。但是您必须执行冗长的 ALTER 才能获得它。 MyISAM 没有 ALGORITHM=INPLACE

关于mysql - 制作一个表innodb和分区会提高mysql的性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31786319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com