對於大規模資料來說,表的乙個改動都會帶來很大的變化。熟悉資料庫中每種資料型別的大小
考慮全部資料量:
考慮表結構設計對資料大小的影響
1.索引使用b樹
磁碟裡面是分塊的,跨塊讀取的資料的速度消耗的時間比在同乙個塊中讀取資料的時間要多。b樹可以通過調整每顆樹中節點的大小,使之和磁碟中的大小一致,這樣每次讀取b數中的資料時,效率較高。
2.索引的作用-mysql
使用mysql索引的語句有:where
,order by
,group by
中指定的列
索引什麼時候有效
3.mysql索引的陷阱
如果想要使用多個列上的索引,必須使用復合索引。如果在查詢語句中,使用到了多個索引,在mysql中,只會使用乙個索引,而其它的列並不使用索引。
記住,mysql每次查詢只能使用乙個索引,如果要用到多個列,設定復合索引,
4.確認索引是否有效-explain命令
對於web服務來說,查詢類的請求遠遠多於寫入類的請求。比如1000個看部落格的人中,很有可能只有1個是寫部落格的。一般來說,master不像讀取類,很少成為瓶頸。當然,偶爾也會出現寫較多的應用程式,這個時候如何處理?
1.表分割
通過分割縮小表的大小,同時分散寫入操作。如果可以分科表檔案,就可以將其分散在同一臺機器中的多塊硬碟上,也可以分散在多台伺服器上。
2.key-value儲存
如果web應用程式只需要儲存值、取出值,而不需要關係型資料庫那些複雜的統計處理和通用排序處理等,key-value儲存結構的額外開銷更少,速度也要快得多,拓展也更容易。
4.2.3 master/salve的特徵
1. 查詢可以拓展
2. master無法拓展
在上兩課中,mysql的橫向拓展策略是:資料能放入記憶體就放入記憶體,不能就增加記憶體,仔細建立索引等。
partitioning,即表分割。將乙個表分割成多份放在不同的伺服器中,但是mysql並沒有將位於不同伺服器上的表join起來的功能。(也就是不能用join)
避免join的方法:利用where…in..
partitioning的優點:
缺點
資料庫拓展
資料都是存在優盤上,查詢資料時必須要進行io操作 索引在mysql中也叫 鍵 是儲存引擎用於快速找到記錄的一種資料結構 primary key unique key index key primary key 與 unique key 除了有加速效果外還有約束效果 index只有加速效果 本質就是 ...
資料庫拓展的幾個方向
資料庫拓展的幾個方向 資料庫是一種資料集合軟體,可以將資料按照設定的規則進行儲存,以供後期 查詢,及再查詢和修正。隨著資料量越來越大和使用者使用量越來越大,資料庫需要同時面對大資料的搜尋 資料插入 修改及各關聯資料之間一致性,為了應對大併發的插入 更新和快速的資料檢索,我們必須對資料庫進行相關擴充套...
資料庫測試策略
1.資料庫備份 內容正確性 不同介質與空間的備份,備份異常處理 大資料量的備份 部分or全部備份 2.資料庫恢復 備份恢復操作是否正常 恢復過程中對異常情況的處理,不同環境下的恢復 3.資料庫許可權管理 許可權裝置 各許可權分配功能實現 4.檢視測試 測試資料庫檢視定義是否反映了使用者的需求 5.資...