tsvector:全文检索数据类型代表一个被优化的可以基于搜索的文档。
to_tsvector:进行数据标准化。
tsquery:一个文本查询,存储用于搜索的词,并且支持布尔操作&、|、!。
to_tsquery:可以执行标准化。
Linux相关命令:
vmstat:Linux中虚拟内存统计工具,用于监控操作系统的虚拟内存、进程、CPU等的整体情况。
vmstat delay count:每隔delay秒采样一次,共采样count次。
iostat:用于整个系统、适配器、tty设备、磁盘和CD- ROM的输入/输出统计信息。
mpstat:返回CPU的详细性能信息。
sar:性能统计非常重要的工具。
sar -q:汇总CPU状况的命令。
sar -b:汇总I/O状况的命令。
dmesg|grep -i scheduler:查看当前系统支持的调度算法。
cfq:绝对公平调度算法,它为每个进程和线程单独创建一个队列来管理该进程的I/O请求,为这些进程和线程均匀分布I/O带宽,比较适合通用服务器。
noop:电梯调度算法,它基于FIFO队列实现,所有I/O请求先进先出,适合SSD。
deadline:绝对保障算法,它为读写分别创建了FIFO队列,当内核收到请求时,先尝试合并,不能合并则尝试排序或放入队列中,并且尽量保证在请求达到最终期限时进行调度,避免有一些请求长时间不能得到处理,适合虚拟机所在宿主机或I/O压力比较重的场景。
psql全局参数
shared_buffers:共享内存大小。当psql在接收到客户端请求时,服务进程会首先在shared_buffers查找所需的数据。如果数据已在shared_buffers中,服务进程可以在内存中进行客户端请求的处理。如果数据不在shared_buffers中,则会从操作系统请求数据。多数情况这些数据从磁盘进行加载。磁盘相对内存的读取要慢很多。增加shared_buffers能使服务进程尽可能从shared_buffers中找到所需数据
shared_buffers值也不是越大的好,使用pgbench进行测试得到一个最佳值
work_mem:用来限制每个服务进程进行排序或hash时的内存分配,指定内部排序和hash在使用临时磁盘文件之前能使用的内存数量。它是针对每个服务进程设置的,所以不宜设置太大。当每个进程得到的work_mem不足以排序或hash使用时,排序会借助磁盘临时文件,使得排序和hash的性能严重下降。
psql在排序时有Top-N、Quick sort、External merge这几种排序方法,如果在查询计划中发现使用了External merge,说明需要适当增加work_mem的值。
random_page_cost:随机访问磁盘块的代价估计。默认值是4,如果使用机械磁盘,这个参数对查询计划没有影响。如果使用固态磁盘,建议将它设置为比seq_page_cost稍大即可,例如1:5,使得查询计划更倾向于索引扫描
网友评论