自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解高性能mysql之MySQL高級(jí)特性總結(jié)

數(shù)據(jù)庫(kù) MySQL 新聞
閑來(lái)無(wú)事,看了下高性能mysql這本書,其中的一些MySQL高級(jí)特性寫的還不錯(cuò),在這里總結(jié)分享下。

概述

閑來(lái)無(wú)事,看了下高性能mysql這本書,其中的一些MySQL高級(jí)特性寫的還不錯(cuò),在這里總結(jié)分享下。

[[270415]]

01.分區(qū)表

1、分區(qū)表限制

  • 一張表最多1024個(gè)分區(qū)
  • 分區(qū)表中無(wú)法使用外鍵約束

2、分區(qū)表注意點(diǎn)

按行寫入大量數(shù)據(jù)時(shí)分區(qū)過(guò)多會(huì)出現(xiàn)問(wèn)題,所以對(duì)大多數(shù)系統(tǒng),100左右個(gè)分區(qū)是沒(méi)有問(wèn)題的

注:鍵分區(qū)和哈希分區(qū)沒(méi)有此問(wèn)題

3、查詢優(yōu)化

對(duì)于訪問(wèn)分區(qū)來(lái)說(shuō),在where中帶分區(qū)列是很重要的(能過(guò)濾部分分區(qū))

詳解高性能mysql之MySQL高級(jí)特性總結(jié)

注:where中要使用分區(qū)函數(shù)列本身才能過(guò)濾分區(qū),如where time='2017',而where YEAR(time)=2017錯(cuò)誤

02.視圖

1、概念

虛擬表,不存數(shù)據(jù),數(shù)據(jù)來(lái)自其他表

2、更新視圖

更新列必須來(lái)自同一表,且含GROUP BY、UNION、聚合函數(shù)及特殊情況不能更新

3、對(duì)性能的影響

重構(gòu)數(shù)據(jù)庫(kù)時(shí)可使用視圖而不必修改表結(jié)構(gòu),用視圖創(chuàng)建基于列的權(quán)限控制減少額外開銷等

4、視圖的限制

不支持物化視圖(即視圖在表中不可查看),不支持視圖中建索引

03.外鍵索引

InnoDB是mysql目前唯一支持外鍵索引的內(nèi)置引擎

外鍵成本:外鍵每次修改數(shù)據(jù)時(shí)都要求在另一張表多執(zhí)行一次查找,當(dāng)然外鍵在相關(guān)數(shù)據(jù)刪除和更新上比在應(yīng)用中維護(hù)更高效。

注:許多案例中發(fā)現(xiàn),在對(duì)性能分析時(shí)發(fā)現(xiàn)外鍵就是瓶頸所在,刪除外鍵后性能立即大幅提升。

04.字符集和校對(duì)

詳解高性能mysql之MySQL高級(jí)特性總結(jié)

字符集編碼優(yōu)先級(jí):列>表>數(shù)據(jù)庫(kù)

校對(duì)規(guī)則:_cs、_ci、_bin分別對(duì)應(yīng)大小寫不敏感、大小寫敏感、二進(jìn)制值

05.全文索引

mysql不支持中文全文索引,應(yīng)用其他引擎如 Sphinx等

06.分布式(XA)事務(wù)

企業(yè)在分布式多數(shù)據(jù)庫(kù)下仍能保證事務(wù)的ACID,這里后面單獨(dú)介紹。

07.查詢緩存

概念:緩存select結(jié)果,跳過(guò)解析、優(yōu)化、執(zhí)行階段。

查詢緩存是完全存儲(chǔ)在內(nèi)存中。mysql無(wú)法為每一個(gè)查詢結(jié)果精確分配大小剛好配匹的緩存空間。

詳解高性能mysql之MySQL高級(jí)特性總結(jié)

查詢緩存如何分配內(nèi)存來(lái)存儲(chǔ)結(jié)果數(shù)據(jù)

查詢緩存無(wú)法***的原因:包含不確定的函數(shù)、未處理過(guò)該查詢、內(nèi)存用完被逐出

配置和維護(hù)查詢緩存:

  • query_cache_type:是否打開查詢緩存,設(shè)置成ON、OFF、DEMAND(這個(gè)僅在明確寫明SQL_CACHE下才放入緩存)
  • query_cache_size:查詢緩存使用的總內(nèi)存空間(值是1024整數(shù)倍)
  • query_cache_min_res_unit:查詢緩存中分配內(nèi)存塊時(shí)的最小單位。
  • query_cache_limit:MySQL能緩存的***查詢結(jié)果
  • query_cache_wlock_invalidate:某表被鎖住,是否仍然從查詢緩存返回結(jié)果,默認(rèn)OFF

通用查詢緩存優(yōu)化:

1) 用多個(gè)小表代替一個(gè)大表對(duì)查詢緩存

2)批量寫入時(shí)只需要做一次緩存失效

3)緩存空間太大,服務(wù)器可能僵死,辦法是控制大小或禁用

4)用SQL_CACHE、SQL_NO_CACHE控制某個(gè)select是否緩存

5)對(duì)于寫密集型應(yīng)用,直接禁用查詢緩存更好

注:若需要更高的緩存效率,推薦使用memcached或redis之類

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2018-09-18 17:20:14

MySQL優(yōu)化數(shù)據(jù)庫(kù)

2024-07-12 08:42:58

Redis高性能架構(gòu)

2017-08-07 21:10:55

MySQLUbuntusysbench

2018-06-22 13:45:08

數(shù)據(jù)庫(kù)MySQLtable-cache

2019-09-03 09:41:48

運(yùn)維架構(gòu)技術(shù)

2020-12-22 10:11:13

MySQL數(shù)據(jù)庫(kù)復(fù)制原理

2017-05-26 10:15:39

Java高級(jí)特性反射

2019-01-15 09:34:30

MySQL高性能優(yōu)化

2018-11-12 14:53:09

Redis性能調(diào)優(yōu)數(shù)據(jù)庫(kù)

2010-03-02 09:53:14

MySQL性能優(yōu)化

2019-08-27 15:00:09

MySQL數(shù)據(jù)庫(kù)存儲(chǔ)

2018-03-30 18:17:10

MySQLLinux

2010-05-27 12:58:16

MySQL性能測(cè)試

2018-05-08 18:26:49

數(shù)據(jù)庫(kù)MySQL性能

2024-09-02 18:10:20

2019-09-26 10:41:21

MySQL數(shù)據(jù)庫(kù)計(jì)數(shù)器

2021-03-18 08:53:44

MySQL數(shù)據(jù)庫(kù)索引

2018-09-19 16:15:18

MySQL直方圖數(shù)據(jù)庫(kù)

2023-07-03 08:20:35

MySQL窗口函數(shù)

2011-04-18 10:16:30

WEB高性能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)