MySQL高級特性都有哪些
今天就跟大家聊聊有關(guān)MySQL高級特性都有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、易門網(wǎng)站維護、網(wǎng)站推廣。
概述
閑來無事,看了下高性能mysql這本書,其中的一些MySQL高級特性寫的還不錯,在這里總結(jié)分享下。
01.分區(qū)表
1、分區(qū)表限制
一張表最多1024個分區(qū)
分區(qū)表中無法使用外鍵約束
2、分區(qū)表注意點
按行寫入大量數(shù)據(jù)時分區(qū)過多會出現(xiàn)問題,所以對大多數(shù)系統(tǒng),100左右個分區(qū)是沒有問題的
注:鍵分區(qū)和哈希分區(qū)沒有此問題
3、查詢優(yōu)化
對于訪問分區(qū)來說,在where中帶分區(qū)列是很重要的(能過濾部分分區(qū))

注:where中要使用分區(qū)函數(shù)列本身才能過濾分區(qū),如where time='2017',而where YEAR(time)=2017錯誤
02.視圖
1、概念
虛擬表,不存數(shù)據(jù),數(shù)據(jù)來自其他表
2、更新視圖
更新列必須來自同一表,且含GROUP BY、UNION、聚合函數(shù)及特殊情況不能更新
3、對性能的影響
重構(gòu)數(shù)據(jù)庫時可使用視圖而不必修改表結(jié)構(gòu),用視圖創(chuàng)建基于列的權(quán)限控制減少額外開銷等
4、視圖的限制
不支持物化視圖(即視圖在表中不可查看),不支持視圖中建索引
03.外鍵索引
InnoDB是mysql目前唯一支持外鍵索引的內(nèi)置引擎
外鍵成本:外鍵每次修改數(shù)據(jù)時都要求在另一張表多執(zhí)行一次查找,當(dāng)然外鍵在相關(guān)數(shù)據(jù)刪除和更新上比在應(yīng)用中維護更高效。
注:許多案例中發(fā)現(xiàn),在對性能分析時發(fā)現(xiàn)外鍵就是瓶頸所在,刪除外鍵后性能立即大幅提升。
04.字符集和校對

字符集編碼優(yōu)先級:列>表>數(shù)據(jù)庫
校對規(guī)則:_cs、_ci、_bin分別對應(yīng)大小寫不敏感、大小寫敏感、二進制值
05.全文索引
mysql不支持中文全文索引,應(yīng)用其他引擎如 Sphinx等
06.分布式(XA)事務(wù)
企業(yè)在分布式多數(shù)據(jù)庫下仍能保證事務(wù)的ACID,這里后面單獨介紹。
07.查詢緩存
概念:緩存select結(jié)果,跳過解析、優(yōu)化、執(zhí)行階段。
查詢緩存是完全存儲在內(nèi)存中。mysql無法為每一個查詢結(jié)果精確分配大小剛好配匹的緩存空間。

查詢緩存如何分配內(nèi)存來存儲結(jié)果數(shù)據(jù)
查詢緩存無法***的原因:包含不確定的函數(shù)、未處理過該查詢、內(nèi)存用完被逐出
配置和維護查詢緩存:
query_cache_type:是否打開查詢緩存,設(shè)置成ON、OFF、DEMAND(這個僅在明確寫明SQL_CACHE下才放入緩存)
query_cache_size:查詢緩存使用的總內(nèi)存空間(值是1024整數(shù)倍)
query_cache_min_res_unit:查詢緩存中分配內(nèi)存塊時的最小單位。
query_cache_limit:MySQL能緩存的***查詢結(jié)果
query_cache_wlock_invalidate:某表被鎖住,是否仍然從查詢緩存返回結(jié)果,默認OFF
通用查詢緩存優(yōu)化:
1) 用多個小表代替一個大表對查詢緩存
2)批量寫入時只需要做一次緩存失效
3)緩存空間太大,服務(wù)器可能僵死,辦法是控制大小或禁用
4)用SQL_CACHE、SQL_NO_CACHE控制某個select是否緩存
5)對于寫密集型應(yīng)用,直接禁用查詢緩存更好
注:若需要更高的緩存效率,推薦使用memcached或redis之類
看完上述內(nèi)容,你們對MySQL高級特性都有哪些有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
網(wǎng)站欄目:MySQL高級特性都有哪些
文章轉(zhuǎn)載:http://www.xueling.net.cn/article/ghgddj.html