MySQL 在崩潰恢復時,會遍歷打開所有 ibd 文件的 header page 驗證數據字典的准確性,如果 MySQL 中包含了大量表,這個校驗過程就會比較耗時。 MySQL 下崩潰恢復確實和表數量有關,表總數越大,崩潰恢復時間越長。另外磁碟 IOPS 也會影響崩潰恢復時間,像這里開發庫的 HDD IOPS 較低,因此面對大量的表空間,校驗速度就非常緩慢。另外一個發現,MySQL 8 下正常啟用時居然也會進行表空間校驗,而故障恢復時則會額外再進行一次表空間校驗,等於校驗了 2 遍。不過 MySQL 8.0 里多了一個特性,即表數量超過 5W 時,會啟用多線程掃描,加快表空間校驗過程。
如何跳過校驗MySQL 5.7 下有方法可以跳過崩潰恢復時的表空間校驗過程嘛?查閱了資料,方法主要有兩種:
1. 配置 innodb_force_recovery可以使 srv_force_recovery != 0 ,那麼 validate = false,即可以跳過表空間校驗。實際測試的時候設置 innodb_force_recovery =1,也就是強制恢復跳過壞頁,就可以跳過校驗,然後重啟就是正常啟動了。通過這種臨時方式可以避免崩潰恢復後非常耗時的表空間校驗過程,快速啟動 MySQL,個人目前暫時未發現有什麼隱患。2. 使用共享表空間替代獨立表空間這樣就不需要打開 N 個 ibd 文件了,只需要打開一個 ibdata 文件即可,大大節省了校驗時間。自從聽了姜老師講過使用共享表空間替代獨立表空間解決 drop 大表時性能抖動的原理後,感覺共享表空間在很多業務環境下,反而更有優勢。
臨時冒出另外一種解決想法,即用 GDB 調試崩潰恢復,通過臨時修改 validate 變數值讓 MySQL 跳過表空間驗證過程,然後讓 MySQL 正常關閉,重新啟動就可以正常啟動了。但是實際測試發現,如果以 debug 模式運行,確實可以臨時修改 validate 變數,跳過表空間驗證過程,但是 debug 模式下代碼運行效率大打折扣,反而耗時更長。而以非 debug 模式運行,則無法修改 validate 變數,想法破滅。
B. 支持大型資料庫的伺服器需要什麼配置
選擇資料庫伺服器的原則:
1、高性能原則:保證所選購的伺服器,不僅能夠滿足運營系統的運行和業務處理的需要,而且能夠滿足一定時期業務量的增長。一般可以根據經驗公式計算出所需的伺服器TpmC值(Tpmc是衡量計算機系統的事務處理能力的程序)。
後比較各伺服器廠商和TPC組織公布的TpmC值,選擇相應的機型。同時,用伺服器的市場價/報價除去計算出來的TpmC值得出單位TpmC值的價格,進而選擇高性能價格比的伺服器。
2、可靠性原則:可靠性原則是所有選擇設備和系統中首要考慮的,尤其是在大型的、有大量處理要求的、需要長期運行的系統上。考慮伺服器系統的可靠性,不僅要考慮伺服器單個節點的可靠性或穩定性,而且要考慮伺服器與相關輔助系統之間連接的整體可靠性。
(2)資料庫很慢時提升伺服器什麼配置擴展閱讀:
優點:
1、編程量減少
資料庫伺服器提供了用於數據操縱的標准介面API(Application Programming Interface,應用程序編程接 口)。
2、資料庫安全高
資料庫伺服器提供監控性能、並發控制等工具。由DBA(Database Administrator,資料庫管理員)統一負 責授權訪問資料庫及網路管理。
3、數據可靠性管理
資料庫伺服器提供統一的資料庫備份/恢復、啟動/停止資料庫的管理工具。
4、計算機資源利用充分
資料庫伺服器把數據管理及處理工作從客戶機上分離出來,使網路中各計算機資源能靈活分配、各盡其用。
C. 資料庫需要什麼配置可以提高效果
這個需要看你具體的業務情況。一般來說,資料庫伺服器的選擇要滿足以下幾點:
1、高性能
資料庫伺服器需要高性能,高性能的伺服器不僅能滿足當前的業務要求,而且
要滿足一定時期內的數據及業務的擴增。
2、高可靠性
資料庫伺服器需要高可靠性,由於資料庫伺服器是需要不間斷運行的,所以需要
確保資料庫伺服器的系統及硬體都能高效穩定的運行。
這只是建議,具體選型需要結合具體業務。
D. 資料庫性能優化有哪些措施
1、調整數據結構的設計。這一部分在開發信息系統之前完成,程序員需要考慮是否使用ORACLE資料庫的分區功能,對於經常訪問的資料庫表是否需要建立索引等。
2、調整應用程序結構設計。這一部分也是在開發信息系統之前完成,程序員在這一步需要考慮應用程序使用什麼樣的體系結構,是使用傳統的Client/Server兩層體系結構,還是使用Browser/Web/Database的三層體系結構。不同的應用程序體系結構要求的資料庫資源是不同的。
3、調整資料庫SQL語句。應用程序的執行最終將歸結為資料庫中的SQL語句執行,因此SQL語句的執行效率最終決定了ORACLE資料庫的性能。ORACLE公司推薦使用ORACLE語句優化器(Oracle Optimizer)和行鎖管理器(row-level manager)來調整優化SQL語句。
4、調整伺服器內存分配。內存分配是在信息系統運行過程中優化配置的,資料庫管理員可以根據資料庫運行狀況調整資料庫系統全局區(SGA區)的數據緩沖區、日誌緩沖區和共享池的大小;還可以調整程序全局區(PGA區)的大小。需要注意的是,SGA區不是越大越好,SGA區過大會佔用操作系統使用的內存而引起虛擬內存的頁面交換,這樣反而會降低系統。
5、調整硬碟I/O,這一步是在信息系統開發之前完成的。資料庫管理員可以將組成同一個表空間的數據文件放在不同的硬碟上,做到硬碟之間I/O負載均衡。
6、調整操作系統參數,例如:運行在UNIX操作系統上的ORACLE資料庫,可以調整UNIX數據緩沖池的大小,每個進程所能使用的內存大小等參數。
資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生於距今六十多年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以後,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。資料庫有很多種類型,從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型資料庫系統都在各個方面得到了廣泛的應用。
在信息化社會,充分有效地管理和利用各類信息資源,是進行科學研究和決策管理的前提條件。資料庫技術是管理信息系統、辦公自動化系統、決策支持系統等各類信息系統的核心部分,是進行科學研究和決策管理的重要技術手段。
在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣的「倉庫」,並根據管理的需要進行相應的處理。
例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。
(4)資料庫很慢時提升伺服器什麼配置擴展閱讀
資料庫,簡單來說是本身可視為電子化的文件櫃--存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。
資料庫指的是以一定方式儲存在一起、能為多個用戶共享、具有盡可能小的冗餘度的特點、是與應用程序彼此獨立的數據集合。
在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣的"倉庫",並根據管理的需要進行相應的處理。
例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。
E. 為什麼在雲伺服器上操作資料庫會卡需要升級配置嗎
網站訪問卡慢有很多原因,一次完整的 HTTP 請求包括域名解析、建立 TCP 連接、發起請求、雲伺服器接收到請求進行處理並返回處理結果、瀏覽器對 HTML 代碼進行解析並請求其他資源,以及對頁面進行渲染呈現。
其中,HTTP 的請求過程經歷了用戶本地客戶端、客戶端到接入伺服器之間的網路節點以及伺服器。在這三個環節中,任意一個環節出現問題都有可能導致網站訪問卡慢。
檢查本地客戶端
本地客戶端訪問網路診斷分析系統,測試本地訪問各域名的速度。根據測試結果,確認本地網路是否存在問題。
檢查網路鏈路
本地客戶端 ping 雲伺服器公網 IP,確認是否存在丟包或延時高的情況。使用 dig/nslookup 命令,查看 DNS 的解析情況,排查是否 DNS 解析引起的問題。您也可以直接使用公網 IP 訪問對應頁面,排查是否 DNS 的問題導致訪問慢。
檢查伺服器使用
如果雲主機存在 CPU/內存使用過高的情況,或者存在帶寬使用過高的情況,判斷是否為伺服器負載引起的資源消耗增大。CPU 或內存使用率過高,容易引起服務響應速度變慢、伺服器登錄不上等問題。
如果是因為網站流量或資源太多,建議優化業務程序或升級伺服器配置。你也可以通過購買新的伺服器,來分擔現有伺服器的壓力。
西部數碼雲伺服器用戶可根據不同需求,自由選擇vCPU、內存、數據盤、帶寬等配置,還可隨時不停機升級帶寬,1分鍾內停機升級vCPU和內存,支撐業務的持續發展。
F. 5G左右的資料庫,每天5000IP,伺服器大概需要怎麼樣的配置
5G左右資料庫,不算太大,也不算太小了。一般的錄入資料庫應該不會慢,但是如果是全局查詢之類的年度統計報表之類的操作,就讓你夠嗆了。這種對伺服器的處理能力,內存容量,硬碟讀取性能都有比較高的要求,核心數量和線程數量是多多益善,因為資料庫軟體對多核心支持都非常好的,核心數線程數越多,計算速度越快。
你可以看看國產品牌正睿的這款最新SNB-E架構的雙路四核伺服器。標配一顆至強E5-2620六核十二線程處理器(2.0GHz/7.2GT/15M緩存),英特爾C602伺服器晶元組主板,8G DDR3 REG ECC 1333MHz內存,SAS 300G 15000轉高速企業級硬碟,4個熱插拔盤位,允許用戶在不關閉伺服器的情況下增加或減少硬碟,便於維護,雙千兆網卡,性能可以說是非常不錯。如果以後隨著業務量的增長,覺得性能不夠用了,還可以擴展到兩顆處理器,達成12顆處理核心,24條處理線程(在任務管理器處能看到24個處理核心的格子- -~很NB),最大支持128GB DDR3 REG ECC高速容錯校驗內存。
產品型號:I21S2-6784HV
產品類型:雙路六核機架式伺服器
處 理 器:Xeon E5-2620
內 存:8G DDR3 REG ECC
硬 盤:SAS 300G
機 構:1U機架式
價 格:¥12990
銀牌服務
全國三年免費上門售後服務,關鍵部件三年以上免費質保。
建議你再增加1個SAS硬碟,做raid1陣列保障數據安全,即使壞掉一個硬碟,數據也不會丟失。兩個硬碟同時壞掉的可能性就太低啦。
給你推薦的是國產品牌正睿的伺服器產品,他們的產品性價比很高,做工很專業,兼容性,質量之類的都有保障,售後也很完善,3年免費質保,3年免費上門售後服務,在業界口碑很不錯。
G. 如何選擇資料庫伺服器硬體配置!急
這個....你有沒有錢?
按你這么說性能需要提升30倍啊!
需要目前<英特爾>45nm四核至強CPU
不少於2GB的DDR2-1066 ECQ內存(最好能買到低周期的CL 4-4-4-12)
主板買<技嘉>的,這個牌子的伺服器主板還是做的不錯的!
顯卡,用上面主板集成的就行了
硬碟你需要買個上萬轉的!推薦<西部數據>的!性能不錯!
買機箱一定要注意!牢固!結實!
電源買<航嘉>的節能靜音的型號,這牌子穩定!省電!
H. 如何加快資料庫連接速度
1、升級硬體
2、根據查詢條件,建立索引,優化索引、優化訪問方式,限制結果集的數據量。
3、擴大伺服器的內存
4、增加伺服器CPU個數
5、對於大的資料庫不要設置資料庫自動增長,它會降低伺服器的性能
6、在查詢Select語句中用Where字句限制返回的行數,避免表掃描,如果返回不必要的數據,浪費了伺服器的I/O資源,加重了網路的負擔降低性能。如果表很大,在表掃描的期間將表鎖住,禁止其他的聯接訪問表,後果嚴重。
7、查詢時不要返回不需要的行、列
8、用select top 100 / 10 Percent 來限制用戶返回的行數或者SET ROWCOUNT來限制操作的行
9、在IN後面值的列表中,將出現最頻繁的值放在最前面,出現得最少的放在最後面,減少判斷的次數
10、一般在GROUP BY 個HAVING字句之前就能剔除多餘的行,所以盡量不要用它們來做剔除行的工作。他們的執行順序應該如下最優:
select的Where字句選擇所有合適的行,Group By用來分組個統計行,Having字句用來剔除多餘的分組。這樣Group By 個Having的開銷小,查詢快.對於大的數據行進行分組和Having十分消耗資源。如果Group BY的目的不包括計算,只是分組,那麼用Distinct更快
11、一次更新多條記錄比分多次更新每次一條快,就是說批處理好.
I. 伺服器資料庫查詢慢
SQL Server資料庫查詢速度慢的原因有很多,常見的有以下幾種:
1、沒有索引或者沒有用到索引(這是查詢慢最常見的問題,是程序設計的缺陷)
2、I/O吞吐量小,形成了瓶頸效應。
3、沒有創建計算列導致查詢不優化。
4、內存不足
5、網路速度慢
6、查詢出的數據量過大(可以採用多次查詢,其他的方法降低數據量)
7、鎖或者死鎖(這也是查詢慢最常見的問題,是程序設計的缺陷)
8、sp_lock,sp_who,活動的用戶查看,原因是讀寫競爭資源。
9、返回了不必要的行和列
10、查詢語句不好,沒有優化
●可以通過以下方法來優化查詢 :
1、把數據、日誌、索引放到不同的I/O設備上,增加讀取速度,以前可以將Tempdb應放在RAID0上,SQL2000不在支持。數據量(尺寸)越大,提高I/O越重要。
2、縱向、橫向分割表,減少表的尺寸(sp_spaceuse)
3、升級硬體
4、根據查詢條件,建立索引,優化索引、優化訪問方式,限制結果集的數據量。注意填充因子要適當(最好是使用默認值0)。索引應該盡量小,使用位元組數小的列建索引好(參照索引的創建),不要對有限的幾個值的欄位建單一索引如性別欄位。
5、提高網速。
6、擴大伺服器的內存,Windows 2000和SQL server 2000能支持4-8G的內存。
配置虛擬內存:虛擬內存大小應基於計算機上並發運行的服務進行配置。運行 Microsoft SQL Server? 2000時,可考慮將虛擬內存大小設置為計算機中安裝的物理內存的1.5倍。如果另外安裝了全文檢索功能,並打算運行Microsoft搜索服務以便執行全文索引和查詢,可考慮:將虛擬內存大小配置為至少是計算機中安裝的物理內存的3倍。將SQL Server max server memory伺服器配置選項配置為物理內存的1.5倍(虛擬內存大小設置的一半)。
7、增加伺服器CPU個數;但是必須 明白並行處理串列處理更需要資源例如內存。使用並行還是串列程是MsSQL自動評估選擇的。單個任務分解成多個任務,就可以在處理器上運行。例如耽擱查詢 的排序、連接、掃描和GROUP BY字句同時執行,SQL SERVER根據系統的負載情況決定最優的並行等級,復雜的需要消耗大量的CPU的查詢最適合並行處理。但是更新操作UPDATE,INSERT, DELETE還不能並行處理。
8、如果是使用like進行查詢的話,簡單的使用index是不行的,但是全文索引,耗空間。 like ''a%'' 使用索引 like ''%a'' 不使用索引用 like ''%a%'' 查詢時,查詢耗時和欄位值總長度成正比,所以不能用CHAR類型,而是VARCHAR。對於欄位的值很長的建全文索引。
9、DB Server 和APPLication Server 分離;OLTP和OLAP分離
10、分布式分區視圖可用於實現資料庫伺服器聯合體。
聯合體是一組分開管理的伺服器,但它們相互協作分擔系統的處理負荷。這種通過分區數據形成資料庫伺服器聯合體的機制能夠擴大一組伺服器,以支持大型的多層 Web 站點的處理需要。有關更多信息,參見設計聯合資料庫伺服器。(參照SQL幫助文件''分區視圖'')
a、在實現分區視圖之前,必須先水平分區表
b、 在創建成員表後,在每個成員伺服器上定義一個分布式分區視圖,並且每個視圖具有相同的名稱。這樣,引用分布式分區視圖名的查詢可以在任何一個成員伺服器上 運行。系統操作如同每個成員伺服器上都有一個原始表的復本一樣,但其實每個伺服器上只有一個成員表和一個分布式分區視圖。數據的位置對應用程序是透明的。
11、重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收縮數據和日誌 DBCC SHRINKDB,DBCC SHRINKFILE. 設置自動收縮日誌.對於大的資料庫不要設置資料庫自動增長,它會降低伺服器的性能。
在T-sql的寫法上有很大的講究,下面列出常見的要點:首先,DBMS處理查詢計劃的過程是這樣的:
1、 查詢語句的詞法、語法檢查
2、 將語句提交給DBMS的查詢優化器
3、 優化器做代數優化和存取路徑的優化
4、 由預編譯模塊生成查詢規劃
5、 然後在合適的時間提交給系統處理執行
6、 最後將執行結果返回給用戶。
其次,看一下SQL SERVER的數據存放的結構:一個頁面的大小為8K(8060)位元組,8個頁面為一個盤區,按照B樹存放。
請參考