See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 9362|Vastuse: 0

[Allikas] MySQL andmebaasi raudreegel

[Kopeeri link]
Postitatud 10.10.2019 14:00:44 | | |
Hea andmebaasi spetsifikatsioon aitab vähendada tarkvara rakendamise keerukust ja suhtluskulusid.

1. Laohoone ehitamise raudne seadus

-
Raudseadus
Tase
Märkus
Märgistik
Kasuta UTF-8. Kui emotikon on salvestatud, kasuta salvestamiseks utf8mb4.
sunnitud

Sorteerimisreeglid
Kasuta utf8_general_ci
sunnitud

2. Laua ehituse raudseadus

-
Raudseadus
Tase
Märkus
Eksegees
Veendu, et sul oleksid välimärkused.
sunnitud

Kodeerida
Kasuta UTF-8. Kui emotikon on salvestatud, kasuta salvestamiseks utf8mb4.
sunnitud

kas väli on kontseptuaalne
See peab olema nimetatud is_xx-ga ning andmetüüp on allkirjastamata tinyint (1 jah, 0 ei), nt is_deleted(1 kustutatud, 0 mitte kustutatud).
sunnitud
Iga väli peab olema allkirjastamata, kui see ei ole negatiivne
Tabeli nimi, välja nimi
Võib kasutada ainult väikeseid tähti, alakriipse või numbreid; On keelatud alustada allajoonimise või numbriga; Ainult numbrid on keelatud kahe alakriipsu vahel; Keela reserveeritud sõnad; Mitmuse nimisõnade kasutamine on tabelinimedes keelatud.
sunnitud

Andmebaasi ja tabeli nime nimetamine
Andmebaasi nimi peaks olema kooskõlas rakenduse nimega ning tabeli nimi peaks olema nimetatud tabeli ärilise Name_Role järgi.
sunnitud

Indeksi nimetamine
Peamine võtmeindeks kasutab pk_ välja nime; Unikaalne indeks uk_ välja nimega; Tavalised indeksid kasutavad idx_ välja nimesid.
sunnitud
pk_ on primaarvõti; uk_ on ainulaadne võtme; idx_ on indeks
Kümnendkomaa tüüp
Andmetüüp on kümnendsüsteem ning ujuv ja kahekordne kasutamine on keelatud, ujuv ja kahekordne on täpsuskadu ning kui salvestatud andmevahemik ületab kümnendkohtade vahemiku, soovitatakse andmed jagada täisarvudeks ja kümnendkohtadeks ning salvestada need eraldi.
sunnitud

Varchari tüüp
Varchar on muutuva pikkusega string, salvestusruumi ei ole ette eraldatud, pikkus ei tohiks ületada 5000 tähemärki, kui pikkus on suurem kui 5000, rakenda tekst (loo eraldi tabel, kasuta primaarklahvi vastamiseks, et vältida teiste väljade indekseerimise efektiivsuse mõjutamist).
sunnitud

Tabeli nimes peab olema kolm välja
id (andmetüüp on allkirjastamata bigint, ühe tabeli juurdeehitus, sammu suurus 1), gmt_create, gmt_modified (aktiivne loomise aeg, passiivne uuendusaeg, andmetüüp on datetime).
sunnitud

Välja redundantsus
Väljad võimaldavad sobivat redundantsust, kuid andmete järjepidevust tuleb arvestada ning redundantväljadel peaks olema 1) harva tehtud muudatusi; 2) Mitte varchari väga pikk väli, rääkimata tekstiväljast.
soovitama

Jaga andmebaas ja tabelid
Partitsioneerimist soovitatakse ainult siis, kui ühe tabeli ridade arv ületab 5 miljonit rida või ühe tabeli maht ületab 2 GB.
soovitama


Sobiva tähemärgi salvestuspikkuse määramine säästab mitte ainult andmebaasitabeli ja indeksi salvestusruumi, vaid mis veelgi olulisem, parandab otsingukiirust.

3. Kehtesta indeksi rauaseadus

-
Raudseadus
Tase
Märkus
Unikaalne indeks
Väljad, millel on äris unikaalsed omadused, isegi kui need on erinevate väljade kombinatsioon, peavad olema unikaalselt indekseeritud. Kuigi unikaalne indeks mõjutab sisestuskiirust, on see kadu tühine, kuid see parandab oluliselt päringu kiirust. Lisaks, isegi kui rakenduskihil on väga täielik kontrollkontroll, siis seni, kuni unikaalne indeks puudub, genereeritakse paratamatult mustad andmed.
sunnitud

liitumine
Rohkem kui kolm tabelit keelavad ühendamise, väljad, mis nõuavad liitmist, ning andmetüübid peavad olema järjepidevad; Kui mitmed tabelid on seotud päringutega, veendu, et vastavatel väljadel peab olema indeks. Isegi kui sul on kahekordne tabeliliitmine, pööra tähelepanu tabeli indekseerimisele ja SQL-i jõudlusele.
sunnitud

Varcharfield
Indeksi pikkus tuleb täpsustada ja pole vaja kõiki välju indekseerida, vaid määrata indeksi pikkus vastavalt tegelikule teksti eristusele. Indeksi pikkus ja eristus on vastuolude paar; tavaliselt stringitüübi andmete puhul on indeksitel, mille pikkus on 20, eristusaste ületab 90%, mida saab määrata arvu (distinct left(veeru nimi, indeksi pikkus))/loend(*) eristusastme järgi.
sunnitud

Lehe otsingus on hägustamine keelatud
Lehekülje otsing keelab hägustumise või täieliku hägususe, vajadusel palun minge otsingumootorisse, et see lahendada. Keelustamise põhjus: indeksifailil on B-puu vasakpoolseim eesliite sobitamise omadus ning kui vasakul olevat väärtust ei määrata, siis seda indeksit kasutada ei saa.
sunnitud

Tellimus
Kui on järjekord stsenaariumite kaupa, pööra tähelepanu indeksi korrapärale. Viimane järjestusväli on osa kombineeritud indeksist ja paigutatakse indeksi kombinatsioonijärjekorra lõppu, et vältida file_sort ja mõjutada päringute tulemuslikkust. Näide: kus a=? ja b=? järjestus c; Indeks tuleks koostada kujul a_b_c; Vastunäide: Kui indeksis on vahemiku otsing, siis indeksi järjestust ei saa kasutada, näiteks kus a>10 tellimus b-ga; Index a_b ei saa sorteerida.
soovitama

4. Kirjuta SQL-i raudreeglid

-
Raudseadus
Tase
Märkus
loend(*)
Ära kasuta count(column name) ega count(constant) asemel count(*), mis on SQL92 standardarvu süntaks, sõltumatu andmebaasist ning sõltumatu NULList ja mitte-NULList. count(*) loendab ridu, mille väärtus on NULL, samas kui count(veeru nimi) ei loe ridu, mille veerg on NULL.
sunnitud

Count (eristuv kolon)
Loendab veerus olevate unikaalsete ridade arvu, välja arvatud NULL. Pane tähele, et count (erinev col1, col2), kui üks veerg on kõik NULL, tagastab see 0 isegi siis, kui teisel veerul on erinev väärtus.
sunnitud

sum(col)
Kui veeru väärtused on kõik NULL, tagastab count(col) 0, kuid sum(col) tagastab NULL, seega tuleb sum() kasutamisel olla teadlik NPE probleemidest. NPE probleeme saab vältida järgmistel viisidel: vali if(isnull(sum(g)), 0, sum(g)) tabelist;
sunnitud

isnull
Kasuta isnull(), et määrata, kas see on NULL väärtus. NULL on NULL võrreldes iga väärtusega.
sunnitud

Lehekülgede päringuloogika
Kui arv on 0, tuleks see otse tagastada, et vältida järgneva lehekülgede lause täitmist.
sunnitud

Välisvõtmed ja kaskaadid
Võõrvõtmete kasutamine ja kaskaadimine on keelatud ning kõik võõrvõtmete mõisted tuleb lahendada rakenduskihil. Põhjus: Võõrvõtmed ja kaskaadid ei sobi hajutatud, kõrge samaaegsusega klastrite jaoks, kaskaadsed uuendused blokeerivad tugevalt, on oht andmebaasi uuenduste tormide tekkeks ning võõrvõtmed mõjutavad andmebaasi sisestamise kiirust.
sunnitud

Salvestatud protseduurid
Salvestatud protseduurid on keelatud, salvestatud protseduurid on raskesti silutavad ja skaleeritavad ning need ei ole kaasaskantavad.
sunnitud

Andmete korrigeerimine
Andmete parandamisel (eriti kirjete kustutamisel või muutmisel) vali esimesena, et vältida juhuslikku kustutamist, ja käivita uuenduslause alles pärast selle korrektsuse kinnitamist.
sunnitud

sees
Kui seda ei saa vältida, peaks hulga elementide arvu kontrollima 1000 piires.
soovitama

Lühendatud tabel
Truncate tabeli kasutamine on keelatud, mis on kiirem kui kustutamine ja kasutab vähem süsteemi- ja logiressursse, kuid truncate on tehinguvaba ega käivita päästikuid, mis võivad põhjustada õnnetusi, seega seda lauset ei kasutata arenduskoodis.
viide


5. ORM kaardid rauaseadused

-
Raudseadus
Tase
Märkus
Tabelipäring
Väljade nimekiri, mille * kasutamine päringute jaoks on keelatud, peab olema selge, millised väljad on vajalikud.
sunnitud

POJO
POJO klassi Boole'i atribuuti ei saa lisada is-i, samas kui andmebaasi väli tuleb lisada is-i, mis nõuab tulemusMapi väljade ja atribuutide vahelist kaardistust.
sunnitud

Tagasipöördumise parameetrid
On keelatud kasutada resultClass tagastusparameetrina, isegi kui kõik klassi atribuudi nimed vastavad andmebaasi väljadele ükshaaval, tuleb need määratleda; Omakorda peab igal tabelil olema sellele vastav atribuut. Põhjus: Seadista kaardistussuhe nii, et väli oleks ühendatud DO-klassiga, et hooldus oleks lihtne.
sunnitud

Tagasipöördumise parameetrid
On keelatud kasutada HashMap'i ja HashTable'i otse päringutulemuste komplekti väljundina. Põhjus: Atribuudi väärtuse tüüp on kontrollimatu.
sunnitud

sql.xml Seadista parameetrid
sql.xml Kasuta konfiguratsiooniparameetrite jaoks #{}, #param# ning ära kasuta ${}, kuna ${} on SQL-i süstimisele vastuvõtlik.
sunnitud

queryForList
Mybatisega kaasas oleva queryForList (String statementName, int start, int size) kasutamine on keelatud. Põhjus: See rakendatakse nii, et taastatakse kõik SQL-lause kirjed, mis vastavad statementName'ile, andmebaasis, ning seejärel kasutatakse subList'i, et saada alamhulk algus, suurus.
sunnitud

Uuendusaeg
Andmebaasitabeli kirje uuendamisel tuleb samal ajal uuendada ka kirje muutmisaega.
sunnitud

Andmebaasitabeli kirjete uuendamine
Ära kirjuta suurt ja täielikku andmeuuenduse liidest (mis edastatakse POJO klassina). SQL-i käivitamisel ära uuenda muutumatuid välju vigade, ebaefektiivsete ja suurenenud binlogide salvestuse tõttu.
soovitama

@Transactional
@Transactional Ära kuritarvita tehinguid. Tehingud mõjutavad andmebaasi QPS-i. Lisaks, kui kasutad tehinguid, tuleb arvestada erinevate rollback-skeemide aspektidega, sealhulgas vahemälu tagasikeeramine, otsingumootori tagasipööramine, sõnumikompensatsioon, statistiline korrigeerimine jne.
viide

Mybatise dünaamilised SQL-sildid
< compareValue väärtuses isEqual> on konstant võrreldes atribuudi väärtusega, tavaliselt arv, mis näitab, et vastav SQL-lause täidetakse, kui on võrdne; < isNotEmpty> näitab, et see täidetakse siis, kui see ei ole tühi ega null; < isNotNull> näitab, et see käivitatakse siis, kui see ei ole null.
viide








Eelmine:SEO operatsioonikaart on esimene kogu võrgus, mis koosneb ülimalt täielikest interneti kõrglahutusega operatsioonikaartidest
Järgmine:[Earth Science] DK Laste entsüklopeedia Kõrgekvaliteediline entsüklopeedia Ühendkuningriigist...
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com