Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 9362|Atbildi: 0

[Avots] MySQL datu bāzes dzelzs noteikums

[Kopēt saiti]
Publicēts 10.10.2019 14:00:44 | | |
Laba datu bāzes specifikācija palīdz samazināt programmatūras ieviešanas sarežģītību un samazināt komunikācijas izmaksas.

1. Noliktavas celtniecības dzelzs likums

-
Dzelzs likums
Līmenis
Piezīme
rakstzīmju kopa
Izmantojiet UTF-8. Ja emocijzīme ir saglabāta, glabāšanai izmantojiet utf8mb4.
piespiedu

Šķirošanas noteikumi
Izmantojiet utf8_general_ci
piespiedu

2. Galda konstrukcijas dzelzs likums

-
Dzelzs likums
Līmenis
Piezīme
Ekseģēze
Pārliecinieties, ka jums ir lauka anotācijas.
piespiedu

Kodēt
Izmantojiet UTF-8. Ja emocijzīme ir saglabāta, glabāšanai izmantojiet utf8mb4.
piespiedu

vai lauks ir konceptuāls
Tam jābūt nosauktam ar is_xx, un datu tips ir neparakstīts tinyint(1 jā, 0 nē), piemēram, is_deleted(1 dzēst, 0 nav izdzēsts).
piespiedu
Jebkurš lauks ir jānoņem, ja tas nav negatīvs
Tabulas nosaukums, lauka nosaukums
Var izmantot tikai mazos burtus, pasvītrojumus vai ciparus; Aizliegts sākt ar pasvītrojumu vai numuru; Tikai skaitļi ir aizliegti starp diviem pasvītrojumiem; Atspējot rezervētos vārdus; Daudzskaitļa lietvārdu lietošana tabulu nosaukumos ir aizliegta.
piespiedu

Datu bāzes nosaukuma un tabulas nosaukuma nosaukums
Datu bāzes nosaukumam jāatbilst lietojumprogrammas nosaukumam, un tabulas nosaukumam jābūt nosauktam ar tabulas biznesa Name_Role.
piespiedu

Indeksa nosaukums
Primārās atslēgas indekss izmanto pk_ lauka nosaukumu; Unikāls indekss ar uk_ lauka nosaukumu; Parastajos indeksos tiek izmantoti idx_ lauku nosaukumi.
piespiedu
pk_ ir primārā atslēga; uk_ ir unikāla atslēga; idx_ ir indekss
Decimāldaļas tips
Datu tips ir decimāldaļa, un ir aizliegts izmantot float un double, float un double ir precizitātes zudums, un, ja saglabātais datu diapazons pārsniedz decimāldaļu diapazonu, ieteicams sadalīt datus veselos un decimāldaļās un glabāt tos atsevišķi.
piespiedu

Varchar tips
varchar ir mainīga gara virkne, iepriekš netiek piešķirta krātuves vieta, garums nedrīkst pārsniegt 5000 rakstzīmes, ja garums ir lielāks par 5000, lietojiet tekstu (izveidojiet atsevišķu tabulu, izmantojiet primāro atslēgu, lai atbilstu, lai neietekmētu citu lauku indeksēšanas efektivitāti).
piespiedu

Tabulas nosaukumā jābūt trim laukiem
id (datu tips ir neparakstīts bigint, vienas tabulas pieaugums, soļa lielums ir 1), gmt_create, gmt_modified (aktīvais izveides laiks, pasīvais atjaunināšanas laiks, datu tips datetime).
piespiedu

Lauka dublēšana
Lauki pieļauj atbilstošu dublēšanu, bet ir jāņem vērā datu konsekvence, un liekajiem laukiem jābūt 1) retām modifikācijām; 2) Nav varchar super garš lauks, nemaz nerunājot par teksta lauku.
ieteikt

Datu bāzes un tabulu sadalīšana
Sadalīšana ir ieteicama tikai tad, ja rindu skaits vienā tabulā pārsniedz 5 miljonus rindu vai vienas tabulas ietilpība pārsniedz 2 GB.
ieteikt


Atbilstoša rakstzīmju krātuves garuma iestatīšana ne tikai ietaupa vietu datu bāzes tabulā un indeksa krātuvē, bet vēl svarīgāk - uzlabo izgūšanas ātrumu.

3. Izveidojiet indeksa dzelzs likumu

-
Dzelzs likums
Līmenis
Piezīme
Unikāls indekss
Laukiem ar unikālām uzņēmuma īpašībām, pat ja tie ir lauku kombinācija, jābūt unikāli indeksētiem. Lai gan unikālais indekss ietekmē ievietošanas ātrumu, šis zudums ir niecīgs, taču tas ievērojami uzlabo vaicājuma ātrumu. Turklāt, pat ja lietojumprogrammas slānim ir ļoti pilnīga pārbaudes kontrole, kamēr nav unikāla indeksa, saskaņā ar Mērfija likumu neizbēgami tiks ģenerēti netīri dati.
piespiedu

Pievienoties
Vairāk nekā trīs tabulas aizliedz apvienošanu, lauki, kuriem nepieciešama savienošana, un datu tipiem jābūt konsekventiem; Ja ar vaicājumiem ir saistītas vairākas tabulas, pārliecinieties, vai saistītajiem laukiem ir nepieciešams indekss. Pat ja jums ir dubultā tabulas pievienošana, pievērsiet uzmanību tabulas indeksēšanai, SQL veiktspējai.
piespiedu

Varčarfīlda
Indeksa garums ir jānorāda, un nav nepieciešams indeksēt visus laukus, vienkārši nosakiet indeksa garumu atbilstoši faktiskajai teksta atšķirībai. Indeksa garums un atšķirība ir pretrunu pāris, parasti virknes tipa datiem indeksiem, kuru garums ir 20, atšķirības pakāpe būs lielāka par 90%, ko var noteikt pēc atšķirības pakāpes count(distinct left(column name, index length))/count(*).
piespiedu

Lapas meklēšanā aizmiglošana ir aizliegta
Lapas meklēšana aizliedz aizmiglošanu vai pilnīgu aizmiglošanu, ja nepieciešams, lūdzu, dodieties uz meklētājprogrammu, lai to atrisinātu. Aizlieguma iemesls: indeksa failam ir B-koka prefiksa atbilstības rekvizīts, un, ja kreisajā pusē esošā vērtība nav noteikta, tad šo indeksu nevar izmantot.
piespiedu

Pasūtīt pēc
Ja ir secība pēc scenārija, pievērsiet uzmanību indeksa kārtībai. Pēdējais kārtošanas lauks ir daļa no kombinētā indeksa un tiek novietots indeksa kombinācijas secības beigās, lai izvairītos no file_sort un ietekmētu vaicājuma veiktspēju. Piemērs: kur a=? un b=? pasūtījums pēc c; Indekss jāveido kā a_b_c; Pretpiemērs: Ja indeksā ir diapazona uzmeklēšana, tad indeksa secību nevar izmantot, piemēram, ja a>10 secība pēc b; Indeksa a_b nevar kārtot.
ieteikt

4. Uzrakstiet SQL dzelzs noteikumus

-
Dzelzs likums
Līmenis
Piezīme
skaits(*)
Nelietojiet count(kolonnas nosaukums) vai count(constant) count(*) vietā, kas ir SQL92 definēto rindu standarta skaita sintakse, neatkarīgi no datu bāzes un neatkarīga no NULL un ne-NULL. count(*) skaita rindas ar vērtību NULL, bet count(kolonnas nosaukums) neskaita rindas ar šo kolonnu NULL.
piespiedu

count(atšķirīgs skoliņš)
Saskaita unikālo rindu skaitu kolonnā, izņemot NULL. Ņemiet vērā, ka count(distinct col1, col2), ja viena no kolonnām ir NULL, tad tā atgriež 0 pat tad, ja otrai kolonnai ir cita vērtība.
piespiedu

SUM(COL)
Ja visas kolonnas vērtības ir NULL, count(col) atgriež 0, bet sum(col) atgriež NULL, tāpēc, lietojot sum(), ir jāapzinās NPE problēmas. NPE problēmas var izvairīties šādos veidos: atlasiet if(isnull(sum(g)), 0, sum(g)) no tabulas;
piespiedu

isnull
Izmantojiet isnull(), lai noteiktu, vai tā ir vērtība NULL. NULL ir NULL salīdzinājumā ar jebkuru vērtību.
piespiedu

Lapu veidošanas vaicājuma loģika
Ja skaits ir 0, tas jāatgriež tieši, lai izvairītos no nākamā lappuses priekšraksta izpildes.
piespiedu

Ārējie taustiņi un kaskādes
Ārējo atslēgu un kaskādes izmantošana ir aizliegta, un visi ārējās atslēgas jēdzieni ir jāatrisina lietojumprogrammas slānī. Iemesls: Ārējās atslēgas un kaskādes nav piemērotas izplatītiem, augstas vienlaicīgas klasteriem, kaskādes atjauninājumi ir spēcīgi bloķējoši, pastāv datu bāzes atjaunināšanas vētru risks, un ārējās atslēgas ietekmē datu bāzes ievietošanas ātrumu.
piespiedu

Uzglabātās procedūras
Saglabātās procedūras ir aizliegtas, un uzglabātās procedūras ir grūti atkļūdot un mērogot, un tās nav pārnēsājamas.
piespiedu

Datu labošana
Labojot datus (īpaši dzēšot vai modificējot ierakstus), vispirms atlasiet, lai izvairītos no nejaušas dzēšanas, un izpildiet atjaunināšanas priekšrakstu tikai pēc tam, kad esat pārliecinājies, ka tas ir pareizs.
piespiedu

Rīgā
Ja no tā nevar izvairīties, iestatītu elementu skaits pēc ieejas ir jākontrolē 1000 robežās.
ieteikt

Saīsināt tabulu
Aizliegts izmantot saīsinātu tabulu, kas ir ātrāka par dzēšanu un izmanto mazāk sistēmas un žurnāla resursu, bet saīsināt ir bez darījumiem un neizraisa trigerus, kas var izraisīt negadījumus, tāpēc neizmantojiet šo paziņojumu izstrādes kodā.
Atsauce


5. ORM kartē dzelzs likumus

-
Dzelzs likums
Līmenis
Piezīme
Tabulas vaicājums
To lauku sarakstam, kurus vaicājumiem aizliegts izmantot *, ir jābūt skaidram, kuri lauki ir obligāti.
piespiedu

POJO
POJO klases Būla atribūtu nevar pievienot is, bet datu bāzes lauks ir jāpievieno is, kas prasa kartēšanu starp laukiem un atribūtiem resultMap.
piespiedu

Atgriešanas parametri
Aizliegts izmantot resultClass kā atgriešanās parametru, pat ja visi klases atribūtu nosaukumi atbilst datu bāzes laukiem pa vienam, tie ir jādefinē; Savukārt katrai tabulai jābūt tam atbilstošam atribūtam. Iemesls: konfigurējiet kartēšanas relāciju, lai savienotu lauku ar DO klasi, lai atvieglotu uzturēšanu.
piespiedu

Atgriešanas parametri
Aizliegts tieši izmantot HashMap un HashTable kā vaicājuma rezultātu kopas izvadi. Iemesls: atribūta vērtības veids ir nekontrolējams.
piespiedu

sql.xml Parametru konfigurēšana
sql.xml Izmantojiet #{}, #param# konfigurācijas parametriem un neizmantojiet ${}, jo ${} ir pakļauts SQL injekcijai.
piespiedu

queryForList
QueryForList(String statementName, int start, int size) izmantošana, kas nāk ar Mybatis, ir aizliegta. Iemesls: Tas tiek īstenots, izgūstot visus SQL priekšraksta ierakstus, kas atbilst statementName datu bāzē, un pēc tam izmantojot apakšsarakstu, lai iegūtu sākuma, lieluma apakškopu.
piespiedu

Atjaunināšanas laiks
Atjauninot datu bāzes tabulas ierakstu, vienlaikus ir jāatjaunina ieraksta modificēšanas laiks.
piespiedu

Datu bāzes tabulas ierakstu atjaunināšana
Nerakstiet lielu un pilnu datu atjaunināšanas interfeisu (nodots kā POJO klase). Izpildot SQL, neatjauniniet nemainītos laukus, jo ir kļūdas, neefektīva un palielināta binlogu krātuve.
ieteikt

@Transactional
@Transactional Neļaunprātīgi neizmantojiet darījumus. Darījumi ietekmē datu bāzes QPS. Turklāt, ja izmantojat darījumus, jums ir jāņem vērā dažādi atcelšanas shēmu aspekti, tostarp kešatmiņas atcelšana, meklētājprogrammas atcelšana, ziņojumu kompensācija, statistiskā korekcija utt.
Atsauce

Mybatis dinamiskie sql tagi
< compareValue isEqual> ir konstante salīdzinājumā ar atribūta vērtību, parasti skaitlis, kas norāda, ka atbilstošais SQL priekšraksts tiek izpildīts, ja tas ir vienāds; < isNotEmpty> norāda, ka tas tiek izpildīts, kad tas nav tukšs un nav nulle; < isNotNull> norāda, ka tas tiek izpildīts, ja tas nav nulle.
Atsauce








Iepriekšējo:SEO operāciju karte ir pirmā visā tīklā, īpaši pilnīgu interneta augstas izšķirtspējas operāciju karšu kolekcija
Nākamo:[Zemes zinātne] DK Bērnu enciklopēdija Augstas kvalitātes enciklopēdija no Lielbritānijas...
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com