偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

數(shù)據(jù)庫(kù)系統(tǒng)優(yōu)化--業(yè)務(wù)邏輯設(shè)計(jì)優(yōu)化

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維
數(shù)據(jù)庫(kù)系統(tǒng)優(yōu)化工作對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō)是很重要的過(guò)程,數(shù)據(jù)庫(kù)系統(tǒng)的優(yōu)化可以使數(shù)據(jù)庫(kù)系統(tǒng)更為完善,工作性能也會(huì)得到提高,那么,本文將主要為大家介紹業(yè)務(wù)邏輯設(shè)計(jì)優(yōu)化。

導(dǎo)讀:當(dāng)我們優(yōu)化一個(gè)系統(tǒng)時(shí),有時(shí)發(fā)現(xiàn)一種情況就是自己修改SQL,索引以及分區(qū)是不能解決性能問(wèn)題的。這時(shí)你要考慮業(yè)務(wù)邏輯優(yōu)化和表設(shè)計(jì)的重構(gòu)。這兩點(diǎn)的確和設(shè)計(jì)結(jié)合的很緊密。下文中將會(huì)為大家詳細(xì)介紹這兩種優(yōu)化。

  業(yè)務(wù)邏輯優(yōu)化

  結(jié)合實(shí)際,我們先談?wù)剺I(yè)務(wù)邏輯優(yōu)化。

  案例一:

  我們的系統(tǒng)一個(gè)文檔模塊,客戶點(diǎn)擊時(shí)很慢,通過(guò)性能分析,是點(diǎn)擊是去查詢數(shù)據(jù)庫(kù),這時(shí)系統(tǒng)是通過(guò)Hibernate來(lái)兩步處理:

  1,計(jì)算該類型的文檔數(shù)量總數(shù)。

  2,顯示最新文檔的前20篇文檔。

  這時(shí)顯示第二步的時(shí)間是很快的,只取20條記錄,但是計(jì)算該類型的所有總數(shù)很慢。系統(tǒng)的這時(shí)的輸入是很大的(計(jì)算該類型的全部文檔,可能有幾萬(wàn)篇數(shù)據(jù)),輸出就一條總數(shù)。這時(shí)因?yàn)闃I(yè)務(wù)邏輯復(fù)雜,即使建立索引,分區(qū)等等速度也是無(wú)法提高,因?yàn)椴荒苷嬲龅剿饕采w和分區(qū)消除。

  客戶是點(diǎn)一下要等十幾秒是不能容忍的,這時(shí)可能輸入數(shù)據(jù)量很大下,數(shù)據(jù)庫(kù)很可能采用的是hash聯(lián)結(jié),而且并發(fā)用戶一大,數(shù)據(jù)庫(kù)服務(wù)器壓力很大。

  這時(shí)常規(guī)的優(yōu)化方法是沒有效果的。這時(shí)我們也發(fā)現(xiàn),客戶其實(shí)對(duì)以前比較老的數(shù)據(jù)是不關(guān)心的,一般只是對(duì)近期的數(shù)據(jù)比較感興趣,所有我們就在查詢時(shí)默認(rèn)設(shè)定半年的時(shí)間,然后在時(shí)間上設(shè)定聚集索引。并默認(rèn)在此時(shí)間上排序,使其使用合并聯(lián)結(jié),減少輸入數(shù)據(jù)量,結(jié)果速度有明顯的提升。

  案例二:

  我們?cè)趦?yōu)化一個(gè)客戶系統(tǒng)時(shí),碰到一種情況,在客戶的一選擇功能時(shí),客戶點(diǎn)擊一下選擇相關(guān)數(shù)據(jù),這時(shí)頁(yè)面要要幾分鐘才能出來(lái),客戶很不滿意,這時(shí)修改sql和索引都沒有辦法,他的輸入的數(shù)據(jù)量也很大,和上面一下也要計(jì)算總數(shù)和取最新前幾條數(shù)據(jù)。

  這時(shí)我們?cè)诓樵兪顷P(guān)聯(lián)了人員,通過(guò)調(diào)查,發(fā)現(xiàn)客戶只對(duì)和自己相關(guān)的數(shù)據(jù)感興趣。也只是查詢自己相關(guān)的數(shù)據(jù)。所以這時(shí)在sql語(yǔ)句里增加用戶id這條限制,同時(shí)在增加userid的索引,這樣一來(lái),速度就大大提高。

  總結(jié):

  當(dāng)然以上兩個(gè)案例,是從輸入入手,減少輸入和輸出的數(shù)據(jù)量,主要優(yōu)化業(yè)務(wù)邏輯,達(dá)到優(yōu)化系統(tǒng)。當(dāng)然有些情況要和客戶確認(rèn)和說(shuō)服他們,有時(shí)他們不一定都認(rèn)可,這時(shí)要說(shuō)明這樣做的目的,相信他們也會(huì)理解。

  表設(shè)計(jì)優(yōu)化

  表設(shè)計(jì),在我們開發(fā)系統(tǒng)時(shí)已經(jīng)確定,好的設(shè)計(jì)的確能大大提高性能,我們?cè)趦?yōu)化系統(tǒng)時(shí),碰到一個(gè)比較麻煩的問(wèn)題。

  原文: 數(shù)據(jù)庫(kù)重構(gòu)(一):字段合并

  這條sql是判斷5個(gè)維度,一個(gè)用戶id, 一個(gè)機(jī)構(gòu)id,一個(gè)崗位id, 還有級(jí)別判斷和是否公共。sql語(yǔ)句里有5個(gè)”or“組成查詢,表數(shù)據(jù)一大就表掃描,性能很差,但業(yè)務(wù)要求和系統(tǒng)要求這樣判斷。即使在表中這五個(gè)字段都建索引,速度也不會(huì)快。太多"OR"了,SQL Server 查詢分析器無(wú)法優(yōu)化。

  這時(shí)由于設(shè)計(jì)時(shí): 用戶id,機(jī)構(gòu)id,崗位id為3個(gè)只有一個(gè)有數(shù)據(jù)。所以將這3個(gè)字段合并,較少"Or"語(yǔ)句,讓數(shù)據(jù)庫(kù)能使用索引。

  總結(jié):

  表設(shè)計(jì)是優(yōu)化是讓sql語(yǔ)句能使用到索引,或者增加冗余字段減少其輸入和輸出數(shù)據(jù),或者減少查詢數(shù)據(jù)(如計(jì)算靜態(tài)表),典型的如索引視圖,數(shù)據(jù)倉(cāng)庫(kù)等。

上文中通過(guò)實(shí)例來(lái)詳細(xì)介紹了兩種數(shù)據(jù)庫(kù)優(yōu)化,即業(yè)務(wù)邏輯優(yōu)化和表設(shè)計(jì)優(yōu)化,用實(shí)例是將抽象的食物具體化,更利于大家的理解,希望大家都能從上文的介紹中收獲各自需要的。

【編輯推薦】

  1. 數(shù)據(jù)庫(kù)優(yōu)化設(shè)計(jì)注意事項(xiàng)
  2. 數(shù)據(jù)庫(kù)優(yōu)化前的10個(gè)問(wèn)題
  3. DB2數(shù)據(jù)庫(kù)優(yōu)化 基本策略少不了
責(zé)任編輯:迎迎 來(lái)源: IT168
相關(guān)推薦

2011-04-13 15:07:30

數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)

2011-04-13 15:25:12

數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)

2015-09-10 09:24:58

2011-04-13 15:17:09

數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)

2011-03-04 16:09:48

數(shù)據(jù)庫(kù)優(yōu)化設(shè)計(jì)注意事項(xiàng)

2011-03-31 09:19:54

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

2013-09-17 10:32:08

Android性能優(yōu)化數(shù)據(jù)庫(kù)

2011-03-03 17:56:52

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

2017-06-16 21:36:14

2011-05-12 11:14:08

數(shù)據(jù)庫(kù)SQL設(shè)計(jì)編程誤區(qū)

2025-08-12 07:31:11

2025-02-18 07:30:35

2011-03-08 08:49:55

MySQL優(yōu)化單機(jī)

2022-04-21 07:20:39

Javascript重構(gòu)邏輯

2023-07-12 08:55:16

PawSQL數(shù)據(jù)庫(kù)

2010-08-26 14:39:54

Infobright數(shù)

2013-01-04 10:00:12

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

2014-07-18 09:33:53

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

2011-08-05 11:01:15

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

2021-12-27 09:52:43

數(shù)據(jù)庫(kù)優(yōu)化SQL
點(diǎn)贊
收藏

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