最近公司用的mysql 資料庫,因為有很多專案使用,偶爾mysql 扛不住了,發現有很多沒有釋放的鏈結。
查了各種原因。總結下。
業務**方面:
sql 有大量的select * from table
。
有查詢單錶業務和多表關聯查詢共用sql語句。
有業務查詢sql 可以批量操作,然後用的迴圈單條去執行。
。。。。n多看不過去的業務處理。有的問題看就痛心。
資料庫方面:
各種資料庫表超大。沒有分表等處理措施,導致查詢過慢,整體查詢效能降低。
讀寫分離沒有做。
n
多系統共用一套mysql 。
複雜業務查詢,大資料非同步業務處理繫結到業務資料庫上,拖慢性能。
。。。。
連線池配置方面:
我用的是阿里巴巴的druid 。
原來的配置。
#系統各種db、快取配置
#集群名稱要和安裝保持一致,否則控制台不斷列印日誌
es.cluster.name=manager
#admin
es.shield.user=manager:manager
#power_user
#es.shield.user=tong:tongchuanwei
#mqmq.ip=192.168.0.37
mq.name=tong
mq.pswd=tong
mq.scope=/
mq.next.ip=192.168.0.37
mq.next.name=tong
mq.next.pswd=tong
mq.next.scope=/
請同學只看jdbc部分。
大家不知道看沒看出來問題。。
jdbc.minevictableidletimemillis=25200000
啊哦。我不知道這個配置的**。。。但絕b這有問題。
這是我調整後的jdbc資料來源配置,帶注釋的。
#driver
jdbc.driverclassname=com.mysql.jdbc.driver
#資料庫鏈結,
jdbc.url=jdbc:mysql:
#帳號jdbc.username=root
#密碼jdbc.password=***x
#檢測資料庫鏈結是否有效,必須配置
jdbc.validationquery=select 'x'
#初始連線數
jdbc.initialsize=3
#最大連線池數量
jdbc.maxactive=10
#去掉,配置檔案對應去掉
#jdbc.maxidle=20
#配置0,當執行緒池數量不足,自動補充。
jdbc.minidle=0
#獲取鏈結超時時間為1分鐘,單位為毫秒。
jdbc.maxwait=60000
#獲取鏈結的時候,不校驗是否可用,開啟會有損效能。
jdbc.testonborrow=false
#歸還鏈結到連線池的時候校驗鏈結是否可用。
jdbc.testonreturn=false
#此項配置為true即可,不影響效能,並且保證安全性。意義為:申請連線的時候檢測,如果空閒時間大於timebetweenevictionrunsmillis,執行validationquery檢測連線是否有效。
jdbc.testwhileidle=true
#1.destroy執行緒會檢測連線的間隔時間
#2.testwhileidle的判斷依據
jdbc.timebetweenevictionrunsmillis=60000
jdbc.minevictableidletimemillis=300000
#鏈結使用超過時間限制是否**
jdbc.removeabandoned=true
#超過時間限制時間(單位秒),目前為5分鐘,如果有業務處理時間超過5分鐘,可以適當調整。
jdbc.removeabandonedtimeout=300
#鏈結**的時候控制台列印資訊,測試環境可以加上true,線上環境false。會影響效能。
jdbc.logabandoned=false
這週做整體配置更新處理。以觀後效。
資料庫validationquery
oracle
select 1 from dual
mysql
select 1
db2select 1 from sysibm.sysdummy1
microsoft sql
select 1
hsqldb
select 1 from information_schema.system_users
postgresql
select version()
ingres
select 1
derby
select 1
h2select 1
#ps 也可以自己定義乙個表資料較少,簡單的查詢也可以。
資料庫配置
active record 根據你的環境修改 mysql 和 postgresql 為了執行針對 mysql 和 postgresql 的測試元件,要安裝相應的 gem。首先安裝伺服器 客戶端庫和開發文 件。在 macos 中可以這麼做 brew install mysql brew install...
資料庫配置
服務命名 統一定義資料庫連線的配置,便於鏈結不同的資料庫 配置檔案 tnsnames.ora 存放位置oracle安裝目錄 network admin 便於快速配置和備份還原 配置工具 net manager 序列 可以生成自增長的整數值 可曾序或降序 優點 可控性強 用法 nextval 獲取下乙...
資料庫配置
專案後端 資料庫配置 1.管理員連線資料庫 mysql uroot proot 2.建立資料庫 create database luffy default charset utf8 3.檢視使用者 select user,host,password from mysql.user 設定許可權賬號密碼...