主頁 > 資料庫 > 如何搭建一套學習、開發PostgreSQL的環境

如何搭建一套學習、開發PostgreSQL的環境

2022-10-25 08:47:10 資料庫

背景

萬事開頭難,搭建好一套學習、開發PostgreSQL的環境,是重中之重,

因為其他平臺(Ubuntu, CentOS, MAC)的用戶大多數都具備了自行安裝資料庫的能力,在這里我只寫一個面向Windows用戶的學習環境搭建檔案,

分為三個部分,用戶可以自由選擇,

如果你想深入的學習PostgreSQL,建議搭建PostgreSQL on Linux的環境,如果你只是想將資料庫使用在日常的應用開發作業中,有也不需要PG的其他附加插件的功能,那么你可以選擇PostgreSQL on Win的環境搭建,

如果你不想搭建本地的PostgreSQL,那么你可以使用云資料庫服務,比如阿里云RDS for PostgreSQL,

本章大綱

一、PostgreSQL on Win環境搭建

1 環境要求

2 下載PostgreSQL安裝包

3 解壓PostgreSQL安裝包

4 下載pgadmin安裝包(可選)

5 安裝pgadmin(可選)

6 規劃資料檔案目錄

7 初始化資料庫集群

8 配置postgresql.conf

9 配置pg_hba.conf(可選)

10 啟動、停止資料庫集群

11 如何自動啟動資料庫集群

12 使用psql 命令列連接資料庫

13 新增用戶

14 使用psql幫助

15 使用psql語法補齊

16 使用psql sql語法幫助

17 查看當前配置

18 設定會話引數

19 在psql中切換到另一個用戶或資料庫

20 使用pgadmin4連接資料庫

21 檔案

二、PostgreSQL on Linux(虛擬機)環境搭建

1 環境要求

2 下載Linux鏡像

3 安裝VMware Workstation(試用版本)

4 安裝securecrt(試用版本)

5 安裝Linux虛擬機

6 配置Linux虛擬機網路

7 securecrt終端連接Linux

8 配置linux

9 配置yum倉庫(可選)

10 創建普通用戶

11 規劃資料庫存盤目錄

12 下載PostgreSQL原始碼

13 安裝PostgreSQL

14 配置linux用戶環境變數

15 初始化資料庫集群

16 配置資料庫

17 啟動資料庫集群

18 連接資料庫

19 安裝pgadmin(可選)

20 配置pgadmin(可選)

21 使用pgadmin連接資料庫(可選)

三、云資料庫RDS for PostgreSQL

1 購買云資料庫

2 設定并記住RDS for PostgreSQL資料庫根用戶名和密碼

3 配置網路

4 配置白名單

5 本地安裝pgadmin(可選)

6 本地配置pgadmin(可選)

7 使用pgadmin連接RDS PostgreSQL資料庫(可選)

一、PostgreSQL on Win環境搭建

1 環境要求

Win 7 x64, 8GB以上記憶體, 4核以上, SSD硬碟(推薦),100GB以上剩余空間, 可以訪問公網(10MB/s以上網路帶寬)

2 下載PostgreSQL安裝包

https://www.postgresql.org/download/windows/

建議下載高級安裝包,不需要安裝,直接使用,

下載win x64的版本(建議下載最新版本)

http://www.enterprisedb.com/products/pgbindownload.do

例如

https://get.enterprisedb.com/postgresql/postgresql-9.6.2-3-windows-x64-binaries.zip

3 解壓PostgreSQL安裝包

postgresql-9.6.2-3-windows-x64-binaries.zip

例如解壓到d:\pgsql

 

 

 

bin: 二進制檔案

doc: 檔案

include: 頭檔案

lib: 動態庫

pgAdmin 4: 圖形化管理工具

share: 擴展庫

StackBuilder: 打包庫

symbols: 符號表

4 下載pgadmin安裝包(可選)

如果PostgreSQL包中沒有包含pgAdmin,建議自行下載一個

建議下載pgadmin4(pgadmin3不再維護)

https://www.pgadmin.org/index.php

https://www.postgresql.org/ftp/pgadmin3/pgadmin4/v1.3/windows/

5 安裝pgadmin(可選)

6 規劃資料檔案目錄

例如將D盤的pgdata作為資料庫目錄,

新建d:\pgdata空目錄,

7 初始化資料庫集群

以管理員身份打開cmd.exe

>d:  
  
>cd pgsql  
  
>cd bin  
  
>initdb.exe -D d:\pgdata -E UTF8 --locale=C -U postgres  
  
初始化時,指定資料庫檔案目錄,字符集,本地化,資料庫超級用戶名  

 

 

 

8 配置postgresql.conf

資料庫組態檔名字postgresql.conf,這個檔案在資料檔案目錄D:\pgdata中,

將以下內容追加到postgresql.conf檔案末尾

listen_addresses = '0.0.0.0'  
port = 1921  
max_connections = 200  
tcp_keepalives_idle = 60  
tcp_keepalives_interval = 10  
tcp_keepalives_count = 6  
shared_buffers = 512MB  
maintenance_work_mem = 64MB  
dynamic_shared_memory_type = windows  
vacuum_cost_delay = 0  
bgwriter_delay = 10ms  
bgwriter_lru_maxpages = 1000  
bgwriter_lru_multiplier = 5.0  
bgwriter_flush_after = 0  
old_snapshot_threshold = -1  
wal_level = minimal
max_wal_senders = 0  # 如果max_wal_senders大于0,需要設定wal_level至少為replica級別, PG 10開始,max_wal_senders默認值為10,以前的版本默認為0,
synchronous_commit = off  
full_page_writes = on  
wal_buffers = 64MB  
wal_writer_delay = 10ms  
wal_writer_flush_after = 4MB  
checkpoint_timeout = 35min  
max_wal_size = 2GB  
min_wal_size = 80MB  
checkpoint_completion_target = 0.1  
checkpoint_flush_after = 0  
random_page_cost = 1.5  
log_destination = 'csvlog'  
logging_collector = on  
log_directory = 'pg_log'  
log_truncate_on_rotation = on  
log_checkpoints = on  
log_connections = on  
log_disconnections = on  
log_error_verbosity = verbose  
log_temp_files = 8192  
log_timezone = 'Asia/Hong_Kong'  
autovacuum = on  
log_autovacuum_min_duration = 0  
autovacuum_naptime = 20s  
autovacuum_vacuum_scale_factor = 0.05  
autovacuum_freeze_max_age = 1500000000  
autovacuum_multixact_freeze_max_age = 1600000000  
autovacuum_vacuum_cost_delay = 0  
vacuum_freeze_table_age = 1400000000  
vacuum_multixact_freeze_table_age = 1500000000  
datestyle = 'iso, mdy'  
timezone = 'Asia/Hong_Kong'  
lc_messages = 'C'  
lc_monetary = 'C'  
lc_numeric = 'C'  
lc_time = 'C'  
default_text_search_config = 'pg_catalog.english'  

9 配置pg_hba.conf(可選)

資料庫防火墻檔案名字pg_hba.conf,這個檔案在資料檔案目錄D:\pgdata中,

將以下內容追加到檔案末尾,表示允許網路用戶使用用戶密碼連接你的postgresql資料庫.

host all all 0.0.0.0/0 md5  

10 啟動、停止資料庫集群

使用命令列啟動資料庫集群

>d:  
  
>cd pgsql  
  
>cd bin  
  
D:\pgsql\bin>pg_ctl.exe start -D d:\pgdata  
正在啟動服務器行程  
  
D:\pgsql\bin>LOG:  00000: redirecting log output to logging collector process  
HINT:  Future log output will appear in directory "pg_log".  
LOCATION:  SysLogger_Start, syslogger.c:622  

使用命令列停止資料庫集群

D:\pgsql\bin>pg_ctl.exe stop -m fast -D "d:\pgdata"
等待服務器行程關閉 .... 完成
服務器行程已經關閉

11 如何自動啟動資料庫集群

配置windows自動啟動服務.

12 使用psql 命令列連接資料庫

psql -h IP地址 -p 埠 -U 用戶名 資料庫名

D:\pgsql\bin>psql -h 127.0.0.1 -p 1921 -U postgres postgres  
psql (9.6.2)  
輸入 "help" 來獲取幫助資訊.  
  
postgres=# \dt  

13 新增用戶

新建用戶屬于資料庫操作,先使用psql和超級用戶postgres連接到資料庫,

新增一個普通用戶

postgres=# create role digoal login encrypted password 'pwd_digoal';  
CREATE ROLE  

新增一個超級用戶

postgres=# create role dba_digoal login superuser encrypted password 'dba_pwd_digoal';  
CREATE ROLE  

新增一個流復制用戶

postgres=# create role digoal_rep replication login encrypted password 'pwd';  
CREATE ROLE  

你還可以將一個用戶在不同角色之間切換

例如將digoal設定為超級用戶

postgres=# alter role digoal superuser;  
ALTER ROLE  

查看已有用戶

postgres=# \du+  
                                 角色串列  
  角色名稱  |                    屬性                    | 成員屬于 | 描述  
------------+--------------------------------------------+----------+------  
 dba_digoal | 超級用戶                                   | {}       |  
 digoal     | 超級用戶                                   | {}       |  
 digoal_rep | 復制                                       | {}       |  
 postgres   | 超級用戶, 建立角色, 建立 DB, 復制, 繞過RLS | {}       |  

14 使用psql幫助

psql有很多快捷的命令,使用\?就可以查看,

postgres=# \?  
一般性  
  \copyright            顯示PostgreSQL的使用和發行許可條款  
  \errverbose            以最冗長的形式顯示最近的錯誤訊息  
  \g [檔案] or;     執行查詢 (并把結果寫入檔案或 |管道)  
  \gexec                 執行策略,然后執行其結果中的每個值  
  \gset [PREFIX]     執行查詢并把結果存到psql變數中  
  \q             退出 psql  
  \crosstabview [COLUMNS] 執行查詢并且以交叉表顯示結果  
  \watch [SEC]          每隔SEC秒執行一次查詢  
  
幫助  
  \? [commands]          顯示反斜線命令的幫助  
  
  ......  
  

15 使用psql語法補齊

如果你編譯PostgreSQL使用了補齊選項,那么在psql中按TAB鍵,可以自動補齊命令,

16 使用psql sql語法幫助

如果你忘記了某個SQL的語法,使用\h 命令即可列印命令的幫助

例如

postgres=# \h create table  
命令:       CREATE TABLE  
描述:       建立新的資料表  
語法:  
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXI  
STS ] 表名 ( [  
  { 列名稱 資料_型別 [ COLLATE 校對規則 ] [ 列約束 [ ... ] ]  
    | 表約束  
    | LIKE 源表 [ like選項 ... ] }  
    [, ... ]  
] )  
  
......  

17 查看當前配置

show 引數名

postgres=# show client_encoding;  
 client_encoding  
-----------------  
 GBK  
(1 行記錄)  

查看pg_settings

postgres=# select * from pg_settings;  

18 設定會話引數

set 引數名=值;

postgres=# set client_encoding='sql_ascii';  
SET  

19 在psql中切換到另一個用戶或資料庫

\c 切換到其他用戶或資料庫

postgres=# \c template1 digoal  
您現在已經連接到資料庫 "template1",用戶 "digoal".  

20 使用pgadmin4連接資料庫

pgAdmin4被安裝在這個目錄

d:\pgsql\pgAdmin 4\bin  

雙擊pgAdmin4.exe打開pgadmin4(有點耗時,自動啟動HTTPD服務)

點擊server,右鍵,創建server.

配置server別名,連接資料庫的 IP,埠,用戶,密碼,資料庫名

 

 

21 檔案

PostgreSQL的安裝包中包含了pgadmin, PostgreSQL的檔案,找到對應的doc目錄,打開index.html,

二、PostgreSQL on Linux(虛擬機)環境搭建

1 環境要求

Win 7 x64, 8GB以上記憶體, 4核以上, SSD硬碟(推薦),100GB以上剩余空間, 可以訪問公網(10MB/s以上網路帶寬)

2 下載Linux鏡像

http://isoredirect.centos.org/centos/6/isos/x86_64/

http://mirrors.163.com/centos/6.9/isos/x86_64/CentOS-6.9-x86_64-minimal.iso

3 安裝VMware Workstation(試用版本)

http://www.vmware.com/cn/products/workstation/workstation-evaluation.html

4 安裝securecrt(試用版本)

securecrt可以用來連接Linux終端,方便使用

https://www.vandyke.com/products/securecrt/windows.html

5 安裝Linux虛擬機

打開vmware, 創建虛擬機, 選擇CentOS 6 x64版本.

1. 配置建議:

4G記憶體,40G磁盤,2核以上,NAT網路模式,

2. 安裝建議:

minimal最小化安裝,

3. root密碼:

記住你設定的root密碼,

4. Linux安裝配置建議

配置主機名,配置網路(根據你的vmware NAT網路進行配置),關閉selinux,關閉防火墻或開放ssh埠(測驗環境),

6 配置Linux虛擬機網路

vmware視窗連接linux

例子,192.168.150 請參考你的vmware NAT網路修改一下,

配置網關

vi /etc/sysconfig/network  
  
NETWORKING=yes  
HOSTNAME=digoal01  
GATEWAY=192.168.150.2  

配置IP

cat /etc/sysconfig/network-scripts/ifcfg-eth0   
  
DEVICE=eth0  
TYPE=Ethernet  
UUID=d28f566a-b0b9-4bde-95e7-20488af19eb6  
ONBOOT=yes  
NM_CONTROLLED=yes  
BOOTPROTO=static  
HWADDR=00:0C:29:5D:6D:9C  
IPADDR=192.168.150.133  
PREFIX=24  
GATEWAY=192.168.150.2  
DNS1=192.168.150.2  
DEFROUTE=yes  
IPV4_FAILURE_FATAL=yes  
IPV6INIT=no  
NAME="System eth0"  

配置DNS

cat /etc/resolv.conf  
  
nameserver 192.168.150.2  

重啟網路服務

service network restart  

7 securecrt終端連接Linux

添加一個session,連接到Linux虛擬機,

 

8 配置linux

1. /etc/sysctl.conf

vi /etc/sysctl.conf  
  
追加到檔案末尾  
  
kernel.shmall = 4294967296  
kernel.shmmax=135497418752  
kernel.shmmni = 4096  
kernel.sem = 50100 64128000 50100 1280  
fs.file-max = 7672460  
fs.aio-max-nr = 1048576  
net.ipv4.ip_local_port_range = 9000 65000  
net.core.rmem_default = 262144  
net.core.rmem_max = 4194304  
net.core.wmem_default = 262144  
net.core.wmem_max = 4194304  
net.ipv4.tcp_max_syn_backlog = 4096  
net.core.netdev_max_backlog = 10000  
net.ipv4.netfilter.ip_conntrack_max = 655360  
net.ipv4.tcp_timestamps = 0  
net.ipv4.tcp_tw_recycle=1  
net.ipv4.tcp_timestamps=1  
net.ipv4.tcp_keepalive_time = 72   
net.ipv4.tcp_keepalive_probes = 9   
net.ipv4.tcp_keepalive_intvl = 7  
vm.zone_reclaim_mode=0  
vm.dirty_background_bytes = 40960000  
vm.dirty_ratio = 80  
vm.dirty_expire_centisecs = 6000  
vm.dirty_writeback_centisecs = 50  
vm.swappiness=0  
vm.overcommit_memory = 0  
vm.overcommit_ratio = 90  

生效

sysctl -p  

2. /etc/security/limits.conf

vi /etc/security/limits.conf   
  
* soft    nofile  131072  
* hard    nofile  131072  
* soft    nproc   131072  
* hard    nproc   131072  
* soft    core    unlimited  
* hard    core    unlimited  
* soft    memlock 500000000  
* hard    memlock 500000000  

3. /etc/security/limits.d/*

rm -f /etc/security/limits.d/*  

4. 關閉selinux

# vi /etc/sysconfig/selinux   
  
SELINUX=disabled  
SELINUXTYPE=targeted  

5. 配置OS防火墻
(建議按業務場景設定,我這里先清掉)

iptables -F  

配置范例

# 私有網段  
-A INPUT -s 192.168.0.0/16 -j ACCEPT  
-A INPUT -s 10.0.0.0/8 -j ACCEPT  
-A INPUT -s 172.16.0.0/16 -j ACCEPT  

重啟linux,

reboot  

9 配置yum倉庫(可選)

在linux虛擬機中,找一個有足夠空間的磁區,下載ISO鏡像

wget http://mirrors.163.com/centos/6.9/isos/x86_64/CentOS-6.9-x86_64-bin-DVD1.iso  
  
wget http://mirrors.163.com/centos/6.9/isos/x86_64/CentOS-6.9-x86_64-bin-DVD2.iso  

新建ISO掛載點目錄

mkdir /mnt/cdrom1  
mkdir /mnt/cdrom2  

掛載ISO

mount -o loop,defaults,ro /u01/CentOS-6.8-x86_64-bin-DVD1.iso /mnt/cdrom1  
mount -o loop,defaults,ro /u01/CentOS-6.8-x86_64-bin-DVD2.iso /mnt/cdrom2  

備份并洗掉原有的YUM組態檔

mkdir /tmp/yum.bak  
cd /etc/yum.repos.d/  
mv * /tmp/yum.bak/  

新增YUM組態檔

cd /etc/yum.repos.d/  
  
vi local.repo  
  
[local-yum]  
name=Local Repository  
baseurl=file:///mnt/cdrom1  
enabled=1  
gpgcheck=0  

重繪YUM快取

yum clean all  

測驗

yum list  
  
yum install createrepo   -- 方便后面測驗  

修改YUM配置,修改路徑為上層目錄

cd /etc/yum.repos.d/  
  
vi local.repo  
  
[local-yum]  
name=Local Repository  
baseurl=file:///mnt/  
enabled=1  
gpgcheck=0  

創建YUM索引

cd /mnt/  
createrepo .  

重繪YUM快取,測驗

yum clean all  
  
yum list  
  
yum install vim  

10 創建普通用戶

useradd digoal  

11 規劃資料庫存盤目錄

假設/home磁區有足夠的空間, /home/digoal/pgdata規劃為資料檔案目錄

Filesystem      Size  Used Avail Use% Mounted on  
/dev/sda3        14G  5.7G  7.2G  45% /  

12 下載PostgreSQL原始碼

https://www.postgresql.org/ftp/source/

su - digoal  
  
wget https://ftp.postgresql.org/pub/source/v9.6.2/postgresql-9.6.2.tar.bz2  

13 安裝PostgreSQL

安裝依賴包

root用戶下,使用yum 安裝依賴包  
  
yum -y install coreutils glib2 lrzsz mpstat dstat sysstat e4fsprogs xfsprogs ntp readline-devel zlib-devel openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make smartmontools flex bison perl-devel perl-Ext  
Utils* openldap-devel jadetex  openjade bzip2  

編譯安裝PostgreSQL

digoal用戶下,編譯安裝PostgreSQL  
  
tar -jxvf postgresql-9.6.2.tar.bz2  
cd postgresql-9.6.2  
./configure --prefix=/home/digoal/pgsql9.6  
make world -j 8  
make install-world  

14 配置linux用戶環境變數

digoal用戶下,配置環境變數

su - digoal  
vi ~/.bash_profile  
  
追加  
  
export PS1="$USER@`/bin/hostname -s`-> "  
export PGPORT=1921  
export PGDATA=/home/digoal/pgdata  
export LANG=en_US.utf8  
export PGHOME=/home/digoal/pgsql9.6  
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH  
export PATH=$PGHOME/bin:$PATH:.  
export DATE=`date +"%Y%m%d%H%M"`  
export MANPATH=$PGHOME/share/man:$MANPATH  
export PGHOST=$PGDATA  
export PGUSER=postgres  
export PGDATABASE=postgres  
alias rm='rm -i'  
alias ll='ls -lh'  
unalias vi  

重新登錄digoal用戶,配置生效

exit  
  
su - digoal  

15 初始化資料庫集群

initdb -D $PGDATA -E UTF8 --locale=C -U postgres  

16 配置資料庫

組態檔在$PGDATA目錄中

1. 配置postgresql.conf

追加  
  
listen_addresses = '0.0.0.0'  
port = 1921  
max_connections = 200  
unix_socket_directories = '.'  
tcp_keepalives_idle = 60  
tcp_keepalives_interval = 10  
tcp_keepalives_count = 10  
shared_buffers = 512MB  
dynamic_shared_memory_type = posix  
vacuum_cost_delay = 0  
bgwriter_delay = 10ms  
bgwriter_lru_maxpages = 1000  
bgwriter_lru_multiplier = 10.0  
bgwriter_flush_after = 0   
old_snapshot_threshold = -1  
backend_flush_after = 0   
wal_level = replica  
synchronous_commit = off  
full_page_writes = on  
wal_buffers = 16MB  
wal_writer_delay = 10ms  
wal_writer_flush_after = 0   
checkpoint_timeout = 30min   
max_wal_size = 2GB  
min_wal_size = 128MB  
checkpoint_completion_target = 0.05    
checkpoint_flush_after = 0    
random_page_cost = 1.3   
log_destination = 'csvlog'  
logging_collector = on  
log_truncate_on_rotation = on  
log_checkpoints = on  
log_connections = on  
log_disconnections = on  
log_error_verbosity = verbose  
autovacuum = on  
log_autovacuum_min_duration = 0  
autovacuum_naptime = 20s  
autovacuum_vacuum_scale_factor = 0.05  
autovacuum_freeze_max_age = 1500000000  
autovacuum_multixact_freeze_max_age = 1600000000  
autovacuum_vacuum_cost_delay = 0  
vacuum_freeze_table_age = 1400000000  
vacuum_multixact_freeze_table_age = 1500000000  
datestyle = 'iso, mdy'  
timezone = 'PRC'  
lc_messages = 'C'  
lc_monetary = 'C'  
lc_numeric = 'C'  
lc_time = 'C'  
default_text_search_config = 'pg_catalog.english'  
shared_preload_libraries='pg_stat_statements'  

2. 配置pg_hba.conf

追加  
  
host all all 0.0.0.0/0 md5  

17 啟動資料庫集群

su - digoal  
  
pg_ctl start  

18 連接資料庫

su - digoal  
  
psql  
psql (9.6.2)  
Type "help" for help.  
  
postgres=#   

19 安裝pgadmin(可選)

在windows 機器上,安裝pgadmin

https://www.pgadmin.org/download/windows4.php

20 配置pgadmin(可選)

參考章節1

21 使用pgadmin連接資料庫(可選)

參考章節1

 

三、云資料庫RDS for PostgreSQL

1 購買云資料庫

https://www.aliyun.com/product/rds/postgresql

2 設定并記住RDS for PostgreSQL資料庫根用戶名和密碼

在RDS 控制臺操作,

3 配置網路

在RDS 控制臺操作,配置連接資料庫的URL和埠,

4 配置白名單

在RDS 控制臺操作,配置來源IP的白名單,如果來源IP為動態IP,白名單設定為0.0.0.0,

(資料庫開放公網連接有風險,請謹慎設定,本文僅為測驗環境,)

5 本地安裝pgadmin(可選)

在windows 機器上,安裝pgadmin

https://www.pgadmin.org/download/windows4.php

6 本地配置pgadmin(可選)

參考章節1

7 使用pgadmin連接RDS PostgreSQL資料庫(可選)

參考章節1

   
作者丨digoal

本文來自博客園,作者:古道輕風,轉載請注明原文鏈接:https://www.cnblogs.com/88223100/p/How-to-build-an-environment-to-learn-and-develop-PostgreSQL.html

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/519196.html

標籤:其他

上一篇:springboot~redis-cluster動態感應的配置

下一篇:ClickHouse(08)ClickHouse表引擎概況

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more