谈谈MYSQL那点事
SQL SQL 语句的编写 语句的编写 谨慎建立 谨慎建立 unique unique 类型的索引(唯一索引) 类型的索引(唯一索引) 大文本字段不建立为索引,如果要对大文本字段进行检索, 大文本字段不建立为索引,如果要对大文本字段进行检索, 可以考虑全文索引 可以考虑全文索引 频繁更新的列不适合建立过多索引 频繁更新的列不适合建立过多索引 应用优化 应用优化 避免使用联表查询和子查询,因为将使执行效率大大下降 能够使用索引的字段尽量进行有效的合理排列,如果使用了 能够使用索引的字段尽量进行有效的合理排列,如果使用了 联合索引,请注意提取字段的前后顺序 联合索引,请注意提取字段的前后顺序 针对索引字段使用 针对索引字段使用 >, >=, =, <, <=, IF NULL >, >=, =, <, <=, IF NULL 和 和 BETWEEN0 码力 | 38 页 | 2.04 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 性能优化之无分支编程 Branchless Programming
但是我们可以变通一下,既然从返回值优化不行,从参数入手怎样?首先已知 sqrt(0) 等 于 0 ,所以我们其实可以转换成: • return x >= 0 ? sqrt(x) : sqrt(0); • 然后再把 sqrt 提取出来得到: • return sqrt(x >= 0 ? x : 0); • 再应用无分支优化: • return sqrt((x >= 0) * x); • 大功告成,对于 x < 0 的情况会变成0 码力 | 47 页 | 8.45 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化
然而只要去掉 (dt * dt) 的括号就会优化失败: 因为乘法是左结合的,就相当于 (b[i] * dt) * dt 编译器识别不到不变量,从而优化失败。 因此,要么帮编译器打上括号帮助他识别,要 么手动提取不变量到循环体外。 调用不在另一个文件的函数: SIMD 优化失败 因为编译器看不到那个文件的 other 函数里是什么,哪怕 other 在定义他的文件里是个空函数,他也不敢优化掉。 解决方案:放在同一个文件里0 码力 | 108 页 | 9.47 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串
Linux 命令行实验 Linux 命令行实验 字符串应用实战(作业) 第 10 章 课后作业 • 输入是一个文本文件 a.txt : • 1 xxx • 4 yyyyyyy • 3 zzzz • 2 wwwww • 要求按照前面的数字排序,输 出到另一个文本文件 b.txt : • 1 xxx • 2 wwwww • 3 zzzz • 4 yyyyyyy 非常感谢相依同学提供了这道有趣的题目:0 码力 | 162 页 | 40.20 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南
cmake-gui -B build 来启动 图形界面编辑各个缓存选项。 • 当然,直接用编辑器打开 build/CMakeCache.txt 修改后保存也是可以的。 • CMakeCache.txt 用文本存储数据,就是可供用 户手动编辑,或是被第三方软件打开并解析的。 缓存变量到底该如何更新?暴力解决:删 build 大法 用万能的“删 build 大法”当然是可以的。这样重新执行的时候缓存变量不存在,0 码力 | 166 页 | 6.54 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化
简单来说:哪个索引最连续,就在后面,最不连 续的那个索引,就在最前面。 那么行主序其实是 XY 序,列主序其实是 YX 序。 如果你和盆友在电话里实在说不清楚,直接把扁 平化用的公式 (z * ny + y) * nx + x 通过文本信 息发给他也可,他看完就知道是 ZYX 序了。 主流程序都会用 YX 序, ZYX 序。 二维数组的遍历 • 二维数组在内存中的布局有 YX 序, XY 序。 • 二维数组的循环遍历也有 YX0 码力 | 147 页 | 18.88 MB | 1 年前3
共 6 条
- 1