PostgreSQL作為目前主流數據庫之一,目前在企業中得到廣泛應用, 但如果您不熟悉 PostgreSQL,您面臨的最常見挑戰是如何調整您的數據庫環境。 當安裝PostgreSQL,它會自動生成一個基本的文件postgresql.conf。根據您使用的操作系統,此配置文件通常保存在數據目錄中。例如,在 Ubuntu 中,PostgreSQL 將配置(pg_hba.conf、postgresql.conf、pg_ident.conf)放在 /etc/postgresql 目錄中。在調整 PostgreSQL 數據庫之前,首先必須找到 postgresql.conf 文件。
但是要使用的正確設置是什么?最初設置的值是什么?今天介紹一個postgresql配置文件自動器:PGTune。它將幫助您輕松解決這個特定問題。
PGTune 是一個配置向導,最初由來自2ndQuadrant的Greg Smith創建。它基于一個 Python 腳本,不幸的是它不再受支持(它不支持較新版本]PostgreSQL。)。目前它已轉換為網頁配置PGTune(基于原始PGTune),現在是一個配置向導,可用于 PG 數據庫配置設置。PGTune用于根據給定硬件配置的最大性能計算PostgreSQL的配置參數。不過它也不是靈丹妙藥,因為postgresql配置參數不僅取決于硬件配置,還取決于數據庫的大小、客戶端數量和查詢的復雜性。
PGTune的使用也很方便,只需要瀏覽器輸入PGTune的地址即可訪問。下面給出一個簡單的例子如下:
您需要做的就是在下面指定以下字段:
然后點擊生成按鈕。或者,您也可以運行生成 postgresql.auto.conf 的 ALTER SYSTEM 語句,但需要postgresql實例重啟才生效。
配置文件展示:
# DB Version: 14
# OS Type: linux
# DB Type: oltp
# Total Memory (RAM): 32 GB
# CPUs num: 8
# Connections num: 1000
# Data Storage: ssd
max_connections=1000
shared_buffers=8GB
effective_cache_size=24GB
maintenance_work_mem=2GB
checkpoint_completion_target=0.9
wal_buffers=16MB
default_statistics_target=100
random_page_cost=1.1
effective_io_concurrency=200
work_mem=2097kB
min_wal_size=2GB
max_wal_size=8GB
max_worker_processes=8
max_parallel_workers_per_gather=4
max_parallel_workers=8
max_parallel_maintenance_workers=4
在之前其實也用過很多數據庫,但是都是收費的,比如MSSQL、Oracle、DB2、GBase等,反正接觸得比較多,但是現在自己要做一些東西的時候,就像用免費的,這不,就盯上MariaDB和PostgreSQL了。
我們先來看看今年常用數據庫的一個排行吧
可以看到,MySQL還是占領著重要的位置,那么我為什么還是要用MariaDB呢?其實主要是考慮到MariaDB是MySQL的一個分支,而且社區活躍,在某些場景下,性能也更出色一些,另外,隨著MySQL被Oracle收購之后,MySQL的發展肯定也會滯后,現在一些MySQL企業版才有的功能,MariaDB也是免費提供的,發展迅猛、更新速度也更快。綜合考慮,覺得MariaDB更好玩一些。
下載很簡單,就是去官網,選擇適合自己機器環境的文件包,點擊Download即可
這里我選擇的是MariaDB10.5.5,壓縮包不大,只有68MB。
把下載文件復制到一個固定目錄,并解壓
我們看這個目錄和之前的不一樣,沒有看到ini文件,別擔心,MariaDB已經為我們簡單化了,我們繼續通過cmd命令行進入到bin目錄執行mariadb-install-db命令,它會自動創建data目錄并初始化一些數據,
E:\tool\mariadb-10.5.5\bin>mariadb-install-db
Default data directory is E:\tool\mariadb-10.5.5\data
Running bootstrap
2020-09-06 10:36:51 0 [Note] E:\tool\mariadb-10.5.5\bin\mysqld.exe (mysqld 10.5.5-MariaDB) starting as process 3160 ...
Removing default user
Creating my.ini file
Creation of the database was successful
這個命令除了給我們初始化數據外,也給我們生成了ini配置文件,真香啊。然后通過mysql --install [服務名]的方式來注冊為服務
E:\tool\mariadb-10.5.5\bin>mysqld --install MariaDB-10.5.5
Service successfully installed.
現在我們就可以去啟動安裝好的MariaDB服務了
現在我們通過命令去連接一下MariaDB,
mysql -u root -p
第一次回車會提示輸入密碼,因為MariaDB默認密碼為空,所以再回車一次即可成功連接到數據庫
E:\tool\mariadb-10.5.5\bin>mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.5.5-MariaDB mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
當然,你也可以直接輸入mysql -u root進入到MariaDB中。進入后,我們用use mysql命令切換到到mysql庫上。
可以看到密碼列都是空,那么沒有密碼肯定是很危險的事情,所以第一件事肯定是修改密碼了
MariaDB [mysql]> SET PASSWORD FOR 'root'@localhost=PASSWORD("root");
Query OK, 0 rows affected (0.052 sec)
MariaDB [mysql]> select host,user,password from user;
+-----------------+-------------+-------------------------------------------+
| Host | User | Password |
+-----------------+-------------+-------------------------------------------+
| localhost | mariadb.sys | |
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| 2cnu7x5olaue004 | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
+-----------------+-------------+-------------------------------------------+
5 rows in set (0.001 sec)
我們退出來試試新設置的密碼,設置密碼后,就必須通過mysql -u root -p登錄了
E:\tool\mariadb-10.5.5\bin>mysql -u root -p
Enter password: ****
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.5.5-MariaDB mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
MariaDB除了自帶的命令行客戶端外,也有一些其他可視化的客戶端工具,如:Navicat、phpMyAdmin、sqlyog、HeidiSQL等等,很多,看大家的選擇吧,這里我知道簡單的執行一些查詢語句,不需要太多復雜的功能,所以先嘗試一下HeidiSQL吧,如果想到更多強大的功能,就花點錢錢,買一些強大的工具的注冊碼吧。
雖然界面low了一點,功能也有些弱,但是免費、簡單、綠色、小巧,還是比較符合我的口味。而且你的每一步操作,在最下面都會以命令的方式展示出來,可以讓你解鎖更多平時沒用到的新指令喲。
我只是記錄我的學習過程,由于書讀得少,可能很多地方表述或者是理解得不對,請輕噴并指正。