數(shù)據(jù)庫(kù)相關(guān)

1. sql調(diào)優(yōu)

  1. 對(duì)查詢(xún)進(jìn)行優(yōu)化, 避免全表掃描,首先應(yīng)考慮在 where及order by涉及的列上使用索引
  2. 避免在where子句中對(duì)字段進(jìn)行null值判斷, 否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描,如:
select id form t where num is null

可以在num設(shè)置默認(rèn)值0,確保表中的num列沒(méi)有null值,然后這樣查詢(xún)

select id form t where num = 0
  1. 避免在where子句中使用!=或<>操作符, 否則引擎放棄使用索引而進(jìn)行全表掃描.
  2. 避免在where子句中使用or來(lái)連接條件,如果一個(gè)字段有索引, 一個(gè)字段沒(méi)有索引, 引擎將放棄使用索引而使用全表掃描,如:
select id from t where num=10 or name='admin'

可以這樣查詢(xún):

select id from t where num = 10
union all
select id from t where name='admin'
  1. in 和 not in 也要慎用, 否則會(huì)導(dǎo)致全表掃描, 如
select id from t where num in(1,2,3)

對(duì)于連續(xù)的數(shù)值, 能用between不要用in

select id from t where num between 1 and 3
  1. 避免在where子句中對(duì)字段進(jìn)行表達(dá)式或者函數(shù)操作,否則引擎放棄使用索引而進(jìn)行全表掃描.
  2. 避免使用模糊查詢(xún), 可使用全文檢索
  3. 避免使用 * , 使用具體字段代替 *

2. 引擎問(wèn)題

特點(diǎn) Myisam BDB Memery InnoDB Archive
存儲(chǔ)限制 沒(méi)有 沒(méi)有 64TB 沒(méi)有
事物安全 支持 支持
鎖機(jī)制 表鎖 頁(yè)鎖 表鎖 行鎖 行鎖
B樹(shù)索引 支持 支持 支持 支持
哈希索引 支持 支持
全文索引 支持
集群索引 支持
數(shù)據(jù)緩存 支持 支持
索引緩存 支持 支持
數(shù)據(jù)可壓縮 支持 支持
空間使用 N/A 非常低
內(nèi)存使用 中等
批量插入的速度 非常高
支持外鍵 支持

  • 最常使用的兩種存儲(chǔ)引擎
  • Myisam存儲(chǔ)引擎. 當(dāng)create創(chuàng)建新表時(shí), 為指定新表的存儲(chǔ)引擎時(shí), 默認(rèn)使用Myisam. 數(shù)據(jù)文件和索引文件可以放置在不同的目錄, 平均分布io, 獲得更快的速度.
  • innoDB(MySQL的默認(rèn)引擎)存儲(chǔ)引擎提供了具有提交, 回滾和崩潰恢復(fù)能力的事物安全, 但是對(duì)比 Myisam的存儲(chǔ)引擎, InnoDB寫(xiě)的處理效率差一些并且會(huì)占用更多的磁盤(pán)空間以保留數(shù)據(jù)和索引

  • 如何選擇合適的存儲(chǔ)引擎
    選擇標(biāo)準(zhǔn): 根據(jù)應(yīng)用特點(diǎn)選用合適的存儲(chǔ)引擎, 對(duì)于復(fù)雜的應(yīng)用系統(tǒng)可以根據(jù)實(shí)際情況選擇多種引擎進(jìn)行組合.
  1. Myisam: 插件式存儲(chǔ)引擎, 他是在web, 數(shù)據(jù)倉(cāng)庫(kù)和其他應(yīng)用環(huán)境下最常使用的存儲(chǔ)引擎之一
  2. InnoDB: 用于事物處理應(yīng)用程序, 具有眾多特性, 包括ACID事物支持
  3. Memory: 將所有數(shù)據(jù)保存在RAM中, 在需要快速查找引用和其他類(lèi)似數(shù)據(jù)的情況下, 可提供極快的訪問(wèn).
  4. Merge: 允許MySQLDBA或開(kāi)發(fā)人員將一系列等同的Myisam表以邏輯方式組合在一起, 并作為一個(gè)對(duì)象引用他們, 對(duì)于諸如數(shù)據(jù)倉(cāng)庫(kù)等VLDB環(huán)境十分合適.

3. 數(shù)據(jù)持久化

  1. 數(shù)據(jù)持久化就是把內(nèi)存中數(shù)據(jù)模型轉(zhuǎn)化為存儲(chǔ)模型
  2. 數(shù)據(jù)持久化的好處
  3. 程序代碼重用性強(qiáng), 即使更換數(shù)據(jù)庫(kù), 只需要更改配置文件, 不必重寫(xiě)程序代碼
  4. 業(yè)務(wù)邏輯代碼可讀性強(qiáng), 在代碼中不會(huì)有大量sql語(yǔ)言, 提高程序可讀性
  5. 持久化技術(shù)可以自動(dòng)優(yōu)化, 以減少對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)量, 提高程序運(yùn)行效率
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末塔逃,一起剝皮案震驚了整個(gè)濱河市蘸朋,隨后出現(xiàn)的幾起案子皮璧,更是在濱河造成了極大的恐慌洲拇,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嫉鲸,死亡現(xiàn)場(chǎng)離奇詭異遇西,居然都是意外死亡哼绑,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)倒淫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)伙菊,“玉大人,你說(shuō)我怎么就攤上這事【邓叮” “怎么了运翼?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)兴枯。 經(jīng)常有香客問(wèn)我血淌,道長(zhǎng),這世上最難降的妖魔是什么财剖? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任悠夯,我火速辦了婚禮,結(jié)果婚禮上躺坟,老公的妹妹穿的比我還像新娘沦补。我一直安慰自己,他們只是感情好咪橙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布夕膀。 她就那樣靜靜地躺著,像睡著了一般美侦。 火紅的嫁衣襯著肌膚如雪产舞。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天菠剩,我揣著相機(jī)與錄音易猫,去河邊找鬼。 笑死赠叼,一個(gè)胖子當(dāng)著我的面吹牛擦囊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嘴办,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼瞬场,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了涧郊?” 一聲冷哼從身側(cè)響起贯被,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎妆艘,沒(méi)想到半個(gè)月后彤灶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡批旺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年幌陕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汽煮。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡搏熄,死狀恐怖棚唆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情心例,我是刑警寧澤宵凌,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站止后,受9級(jí)特大地震影響瞎惫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜译株,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一瓜喇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧古戴,春花似錦欠橘、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至叉袍,卻和暖如春始锚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背喳逛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工瞧捌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人润文。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓姐呐,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親典蝌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子曙砂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容