gpt4 book ai didi

mysql - 内存 VS MyIsam tmpfs?

转载 作者:行者123 更新时间:2023-11-29 20:14:07 26 4
gpt4 key购买 nike

有许多表的列为 TEXT 类型。有些 table 很大,服务负载很高。 InnoDB 中的所有表。

当 SQL 查询创建 tmp 表时,如果该表有 TEXT 类型的字段,则该表将在磁盘上创建为 MyISAM 类型。为了避免磁盘I/O操作,MySQL临时目录(tmpdir)被挂载在内存(tmpfs)中。

1) MyISAM tmpfs 和内存哪个更快?有很大区别吗?

2) 如果MyISAM 用于临时表,我是否需要配置仅对于MyISAM 表才需要的缓冲区:read_buffer_size read_rnd_buffer_size?这些 MyISAM 配置会对性能产生影响吗? (Myisam_sort_buffe_size,key_buffer_size)

我想将 TEXT 更改为 VARCHAR。

最佳答案

一般来说,最好忽略您提出的所有问题。

  • 如果 SELECT 包括TEXT列,它必须使用MyISAM,而不是MEMORY。也就是说,如果你不碰任何 TEXT , BLOB ,或“大”VAR*列,很多不需要使用MyISAM。
  • 让我们看看查询;也许我们可以避开 tmp 表!
  • 基于各种缓存问题,如果可行,MyISAM tmp 表将大部分(全部?)保留在 RAM 中。
  • 对于临时表,MEMORY 几乎总是比 MyISAM 快。
  • 如果您使用 ramdisk 并且 tmp 表太大,查询将会崩溃。
  • 如果你使用ramdisk,你就会从其他东西(特别是InnoDB的buffer_pool)窃取RAM,从而减慢其他一切!
  • 如果您需要超过 255 个(或者是 512 个?我没有确切的截止值),则从 TEXT 更改为 VARCHAR 将不起作用。
  • 您提到的所有设置均与此用例无关。

关于mysql - 内存 VS MyIsam tmpfs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39911245/

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