索引:索引是資料庫中用來提高查詢效率的技術,類似於目錄
為什麼用:不使用索引,資料會零散的儲存在磁碟塊中,查詢資料需要挨個遍歷每乙個磁碟塊,直到找到資料為止,使用索引後會將磁碟塊以樹狀結構儲存,查詢資料時會大大降低訪問的磁碟塊數量,從而提高查詢效率。
缺點:索引會占用磁碟空間,只對常用的查詢字段建立索引。如果表中資料量很少,新增索引反而會降低查詢效率。
復合索引:通過多個字段建立的索引稱為復合索引。
快取,在持久層或持久層之上做快取使用ehcache快取。
這個一般用於持久層的快取,提供持久層、業務層的快速快取,hibenate預設使用的二級快取就是ehcache;
資料庫表的大字段剝離
假如乙個表的字段數有100多個,學會拆分字段,保證單條記錄的資料量很小;
恰當地使用索引
必要時建立多級索引,分析mysql的執行計畫,通過表資料統計等方式協助資料庫走正確的查詢方式,該走索引就走索引,該走全表掃瞄就走全表掃瞄;
表的拆分表
分割槽和拆分分割槽和拆分無論是業務邏輯上的拆分(如乙個月一張報表、分庫)還是無業務含義的分割槽(如根據id取模分割槽)。
字段冗餘
減少跨庫查詢和大表連線操作;,資料通過單個或多個job生成出來,減少實時查詢;
從磁碟上做文章
資料存放的在磁碟的內、外磁軌上,資料獲取的效率都是不一樣的;
放棄關聯式資料庫的某些特性
引入nosql資料庫;換種思路存放資料,例如搜尋中的倒排表;
詳細參考:
資料庫 資料庫索引
索引是儲存引擎用於快速找到記錄的一種資料結構。索引以檔案的形式儲存在磁碟中。索引可以包含乙個或多個列的值。儲存引擎查詢資料的時候,先在索引中找對應值,然後根據匹配的索引記錄找到對應的資料行。1.b tree索引 2.雜湊索引 myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用...
資料庫mysql索引 資料庫 mysql索引
mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...
資料庫索引
索引 索引列唯一索引 主鍵索引 聚簇索引和非聚簇索引 如何建立索引 如何刪除索引 使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓 lname 列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資...