在 MySQL 中,EXPLAIN 命令是一个非常有用的工具,它可以帮助我们深入了解 MySQL 执行一条 SQL 语句时的优化过程。 type 列和 extra 列是 EXPLAIN 结果中两个最重要的列,它们能提供关于查询执行方式的详细信息。
注意: EXPLAIN 提供的信息是基于 MySQL 优化器对 SQL 语句的分析,实际执行情况可能会有所不同。
在 MySQL 中,EXPLAIN 命令是一个非常有用的工具,它可以帮助我们深入了解 MySQL 执行一条 SQL 语句时的优化过程。 type 列和 extra 列是 EXPLAIN 结果中两个最重要的列,它们能提供关于查询执行方式的详细信息。
注意: EXPLAIN 提供的信息是基于 MySQL 优化器对 SQL 语句的分析,实际执行情况可能会有所不同。
在一些情况下(如小项目等),我更喜欢用 Javascript ,同时也不介意使用 Typescript, 特别在一些较大的项目,特别是在使用 Svelte 进行表单验证的时候。 在使用 Svelte 不涉及表单验证等复杂场景的时候, 直接使用 Javascript 和 JSDoc 也可以获得不错的类型提示体验也很方便。 但在更复杂的场景如使用Superforms 和 Zod 进行表单验证的时候, Typescript 会有更友好的编码体验(类型提示和类型检查)。
Svelte 有 React 模块化,但程序体积更小,也有Vue 的简单,但我觉得Svelte 更新简洁。Svelte 是一种编译型框架,构建时将组件的逻辑转换为高效的原生JavaScript代码。 由于不使用虚拟DOM,Svelte具有卓越的性能表现,这点和React 、 Svelte 有非常大的不同,也是尝试它的一个原因之一。
thiserror
库提供了方便的派生宏,简化了Rust中自定义错误的创建和处理。
Zig 语言不干预堆内存分配, 没有隐藏的内存分配,没有new关键字或其他任何使用堆分配器的语言功能,整个堆都是由库或者用户代码而非语言本身所管理的。
Zig 标准库提供了一中分配内存的模式,这允许程序员精准选择标准库中内存如何完成分配,在标准库中不会背着你偷偷分配内存。
Zig 提供的分配器 allocator
有:
展示HTML canvas、wasm memory 和 zig 交互的一个小示例。