> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-detect-table-modification.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# local_filesystem_* 会话设置

> ClickHouse 在 local_filesystem_* 生成分组中的会话设置。

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>类型</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>默认值</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          无需重启即可更改
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

这些设置可在 [system.settings](/zh/reference/system-tables/settings) 中查看，并由 [源代码](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp) 自动生成。

<div id="local_filesystem_read_method">
  ## local\_filesystem\_read\_method
</div>

<SettingsInfoBlock type="String" default_value="pread_threadpool" />

从本地文件系统读取数据的方法，可选值之一为：read、pread、mmap、io\_uring、pread\_threadpool。

'pread\_threadpool' 方法会将读取操作交由线程池处理，除非数据已位于页缓存中；这会通过 `preadv2` 系统调用和 `RWF_NOWAIT` 标志进行检查。该检查需要 Linux 5.11 或更高版本，并且该系统调用不得被容器运行时的 `seccomp` profile 拒绝。启动时会检查该系统调用是否可用；如果不可用，此设置的默认值会切换为 'pread'，因为将每次读取操作 (包括由页缓存提供的读取) 都交由线程池处理开销较大；原因会记录在服务器日志中。只有当 `seccomp` profile 以错误代码拒绝该系统调用时，才能检测到它，这也是容器运行时的行为；对于会直接终止进程的 profile，则无法检测。通过配置或使用 `SET` 显式设置的值不会被切换。

'io\_uring' 方法处于 Experimental 状态，并且不适用于 Log、TinyLog、StripeLog、File、Set 和 Join，以及其他在并发读写情况下使用可追加文件的表。
如果你在互联网上看过各种关于 'io\_uring' 的文章，不要被它们误导。除非是在有大量小型 IO 请求的场景下，否则它并不是更好的文件读取方法，而 ClickHouse 并不属于这种情况。因此，没有理由启用 'io\_uring'。

<div id="local_filesystem_read_prefetch">
  ## local\_filesystem\_read\_prefetch
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

从本地文件系统读取数据时，是否使用预取。
