- 博客(267)
- 资源 (1)
- 收藏
- 关注

原创 PostgreSQL字符串函数
-- 字符串拼接 PostgreSQLselect 'Post'||'greSQL';-- 返回参数的长度位 24select bit_length('one');-- 返回参数中的字符数 2select char_length('中国');-- 同上 2select length('中国');-- 不同编码下的长度 3select length('中国','GBK');-- 字符串的字节数 6select octet_length('中国');...
2020-08-03 10:46:20
1315
原创 Greenplum广播与重分布原理
Greenplum 的执行计划和 PostgreSQL 基本一致,但是在表关联的时候还是会有区别,因为 greenplum 中数据不同于 pg,greenplum 是将数据分布在多个节点上。所以当两表关联时关联列又不是表的分布键时就会出现表的广播和重分布。本文将详细介绍广播和重分布的区别及场景。
2022-09-09 15:55:04
700
1
原创 PostgreSQL列存与行存
列存优势:1、列存没有行存1666列的限制2、列存的大量记录数扫描比行存节约资源3、列存压缩比高,节约空间4、列存的大量数据计算可以使用向量化执行,效率高行存优势:1、行存查询多列时快2、行存DML效率高简单来说,行存适合OLTP业务,列存适合OLAP业务。如果业务是混合负载,既有高并发SQL,又有实时分析业务怎么办?Oracle的做法:in memory column store,实际上是两份存储,一份在磁盘(行存),一份在内存中使用列存。根据SQL,优化器
2022-04-21 15:50:49
3731
原创 PHP高效读大文件处理数据
<?php// php bigFileRead.php test.txtif(!isset($argv[1])){ echo 'file name is empty.';}else{ $file = $argv[1]; if(!file_exists($file)){ echo 'file does not exist.' }}function effReadFile($path){ if($handle = fopen($pa.
2022-04-20 15:43:49
247
原创 CentOS7使用firewall-cmd操作防火墙与端口
一、CentOS7版本对防火墙进行加强,不再使用原来的iptables,启用firewalld
2022-02-25 11:15:47
1029
原创 php://input与$_POST与$HTTP_RAW_POST_DATA
首先明确一点,json格式的数据指的的http头body的字符串是一个json格式的字符串。这个在PHP中无法通过$_POST取到,php底层没有对这种方式进行处理。
2022-02-23 14:55:52
217
原创 php://input的使用方法
php://input是个可以访问请求的原始数据的只读流。POST请求的情况下,最好使用php://input来代替$HTTP_RAW_POST_DATA,因为它不依赖于特定的php.ini指令。而且,这样的情况下$HTTP_RAW_POST_DATA默认没有填充,比激活always_populate_raw_post_data潜在需要更少的内存。enctype="multipart/form-data"的时候php://input是无效的。
2022-02-21 16:25:02
5206
原创 PHP使用curl发送post请求的注意事项
前几天在工作中遇到了一个需求,当用户点击了某个按钮以后,后台发起一个post请求到我这里,我接受传递过来的数据。一开始同事是用公司框架公共封装的httpRequest()方法进行发送的,代码如下:
2022-02-21 14:47:16
1260
1
原创 php的curl携带header请求头信息实现http访问
curl请求时添加请求头信息可以模拟真人操作,不容易被当成是爬虫机器人(采集),从而可以绕过Incapsula等安全验证机制。
2022-02-21 14:24:18
3058
原创 php实现大文件分片上传
如果上传的文件只有小于10M的话,就没必要考虑这样的做法,直接在php.ini中更改一下upload_max_filesize=10m post_max_size=10m这样就可以了,下面我们来说一说php上传超大的文件。
2022-02-18 10:39:31
2875
原创 PHP大文件分片上传的实现方法
在网站开发中,经常会有上传文件的需求,有的文件size太大直接上传,经常会导致上传过程中耗时太久,大量占用带宽资源,因此有了分片上传。接下来通过本文给大家介绍PHP大文件分片上传的实现方法,需要的朋友可以参考下。
2022-02-17 17:15:25
496
原创 PHP超低内存遍历目录文件和读取超大文件的方法
我写这篇笔记的原因是现在网络上关于PHP遍历目录文件和PHP读取文本文件的教程和示例代码都是极其低效的,低效就算了,有的甚至好意思说是高效,实在辣眼睛。
2022-02-17 14:37:56
517
原创 php实现大文件断点续传
所谓断点续传,也就是要从文件已经下载的地方开始继续下载。在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了。一般断点下载时才用到Range和Content-Range实体头。
2022-02-17 11:28:43
295
1
原创 Greenplum Vacuum表的作用
vacuum:该选项主要是清理数据库表中的垃圾空间,该动作会消耗系统一定的资源,引起系统的IO上升,对有一定系统瓶颈来说容易造成堵塞,严重会把GP宕掉,造成数据库瞬断。一般不建议vacuum库中全表,通常做法是vacuum指定的表。
2022-01-18 14:23:59
332
原创 MySQL数据库设计建议
【强制】数据库的名称必须控制在32个字符以内,由英文字符和数字组成。禁止使用中文。【强制】创建数据库时必须显式指定字符集,并且字符集只能是utf8或者gbk。【强制】表名称必须控制在32个字符以内。不能使用系统保留字和特殊字符,只能使用字母、数字和下划线。【强制】列名称必须控制在32个字符以内。不能使用系统保留字和特殊字符,只能使用字母、数字和下划线。【强制】创建表时必须显式指定字符集,并且字符集必须与数据库字符集相同,utf8或者gbk。【强制】创建表时必须显式指定表存储引擎类型,默认
2021-10-08 19:29:51
254
原创 MySQL聚簇索引和非聚簇索引原理
一、‘页’和操作系统的关系 1、为什么要有内存管理? 我们知道,一个进程完成他的功能,需要访问磁盘加载数据到内存然后等待进入cpu运算,因为数据量大小远远大于内存大小。因此提出虚拟内存概念。虚拟内存就是将程序用到的数据进行划分,暂时用不到的放到磁盘里,用到的放到内存里,操作系统中总是运行着不止一个进程,各个进程有优先级顺序,所以存在进程调度问题,进程的每次调度都会导致内存和磁盘数据置换,段式内存管理页式内存管理都是基于虚拟内存概念的具体内存管理解决方案。 2、什么是页式内存管理?
2021-08-19 17:58:05
228
原创 DataX脚本任务开发记录
# job模版:/home/work/datax/job/fn/example/fn_t_bank_return_days{ "job": { "content": [{ "reader": { "name": "mysqlreader", "parameter": { "columnMeta": [{ "value": "dt", "label": "DATE_FORMAT(f_create_time,'%Y-%m-%d')", .
2021-07-20 19:17:59
404
原创 PostgreSQL除法注意事项
-- 在PG里如果想做除法并想保留小数,用上面的方法却行不通,因为"/" 运算结果为取整,并且会截掉小数部分。select 1/4; -- 0select round(1::numeric/4::numeric,2); -- 0.25select round(cast(1 as numeric )/cast(4 as numeric),2); -- 0.25-- cast函数用法SELECT substr(CAST(1234 AS text),3,1); -- 3...
2021-07-09 16:35:52
1557
原创 邮件监控云上脚本执行进度
#!/bin/sh#监控云上pay-data-load脚本执行进度current_path=$(cd "$(dirname $0)"; pwd)data_path="$current_path/time/"file_input=$current_path/file_inputhtml_file=$current_path/pay_data_load.htmlif [ -f "$html_file" ];then rm $html_filefi#if [ -f "$file_...
2021-07-09 11:35:37
151
原创 布隆过滤器
一、介绍 布隆过滤器是一个二进制数组,它的作用是判断一个数是否存在于这个数组,0表示不存在,1表示存在,如下图所示: 二、添加 如果要存入“你好”这个字符串,首先会经过n个哈希函数计算,会计算出不同的哈希值,然后将这几个哈希值映射到数组中,对应的位置的二进制数被修改为1,如下图所示: 下标为3、5、7的位置被修改成了1 三、查询 比如说查询“你好”这个字符串,首先通过n个哈希函数计算出对应的数组位置是3、5、7,这三个位置的二进制数...
2021-07-06 16:47:57
84
原创 Redis缓存预热&雪崩&击穿&穿透
目录 1、缓存预热 2、缓存雪崩 3、缓存击穿 4、缓存穿透 1、缓存预热 场景: 服务器启动后迅速宕机 问题排查: 1、请求数量较高,大量的请求过来之后都要从缓存中获取数据,但是缓存中又没有,从数据库中查找数据后将数据再存入缓存,造成了短期内对redis的高强度操作 2、主从之间数据吞吐量较大,数据同步操作频度较高 解决方案: 为了防止用户访问的时候Redis中没有数据,所以提前将热点数...
2021-07-06 16:20:00
146
原创 PostgreSQL用户角色权限
在PostgreSQL中,所有内容都是围绕role概念构建的。在macOS上首次安装PostgreSQL时,该脚本使用您的macOS用户名创建了一个角色,并授予了权限列表。PostgreSQL中没有用户,只有role。通过在终端中运行psql postgres,您将使用您的macOS用户名自动登录到PostgreSQL,从而访问创建的角色。就我而言,创建了flaviocopes角色,可以使用\du命令看到它:看到? 默认情况下,我具有以下角色属性: Superuser...
2021-07-06 14:29:42
536
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人