Technology sharing

[MySQL] Quid communes usus MySQL lignorum?

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Contentum MySQL tigna magni ponderis est et in colloquiis saepe quaeritur. Eodem tempore, scientiam logam relatarum domito adiuvabit etiam nos intellegentes principia MySQL subiecta et adiuvabit nos fermentum et difficultates solvendas cum necesse est.
Typi Logi Communis in MySQL principaliter sequenti generum comprehendunt (pro InnoDB machinam repositam);

  • Error log (erroris index): initium, cursus, ac processus MySQL claudit.
  • Stipes binarius (binarylog, binlog): maxime commemorat SQL propositiones quae mutant datorum datorum.
  • Inquisitionis generalis index: Omnia SQL monumenta ad MySQL servo missa per clientem qui nexum instituit. Quia moles SQL relative magna est, per defaltam non datur nec commendatur.
  • Tardus index interrogationis (quaestivelog sus): Tempus exsecutionis quaesitum temporis secundis excedit long_query_time, adhibetur cum solvendo SQL quaestiones interrogationis tarde.
  • Transactio stipes (redo stipes et undo stipes): redo stipes est redo stipes, et undo stipes est reverti stipes.
  • Nullam stipes: Nullam stipes est truncus generatus in replicationibus. Nullam stipes tamen intendit ad replicationem servi datorum in domino.
  • DDL log (metadatalogus): metadata operationes per DDL constitutiones

Stipes binarius (binlog) et transactionis stipes (redo stipes et undo stipes) magis sunt momenti et umbilicum nostrum requirunt.

1. tardus query iniuriarum

Tarda interrogationis iniuriarum refert omnes interrogationes enuntiationes quarum supplicium tempus long_query__time excedit (defectus est 10s, 1s solere proficisci).
Tardum SQL inveniens est primus gradus ad optimizandas SQL constitutiones perficiendas. Tunc utere imperio EXPLICATIO SQL lentum resolvere et informationes habere de consilio exsecutionis.
Ostendo variabilium uti potes sicut "slow_query_log"; imperare ad reprimendam num tarde quaesitum stipes in volvitur.

Versari potest ab SET Global slow_query_log=ON

Modus long_query_time definit quam diu quaesitum sumit antequam quaestionem lente definiri potest. Congue est 10 *.

Mutari etiam potest: pone global long_query_time = 12

In inceptis actualibus, logae interrogationis tardae relative magnae esse possunt et incommodum est eam directe resolvere. mysqldumpslow . Mea blog etiam simpliciter cum instrumento mysqldumpslow coniungitur:

[MySQL] instrumentum mysqldumpslow - lima quaesitum tardum comprehendens-CSDN Blog

1.1 Quomodo ad investigandum numerum hodiernum interrogationis tardae?

In MySQL variabilis est quae recenset numerum verborum interrogationis tardae
w_queries%';

1.2 Quam ad optimize tardus queries

MySQL praebet nobisEXPLICATIOmandatum ad habendum consilium de execu- tione.
Consilium supplicium refert ad modum executionis specificae propositionis SQL postquam optimized per MySQL interrogationem optimizer. Consilia exsecutioni mandari solent in missionibus sicut SQL analyseos perficiendi et optimizationi. Per eventus EXPLICATIO, informationes discere potes quales sunt series interrogationis tabulae datae, operandi genus operandi quaesiti notati, qui index ferire potest, qui index actu ferietur, quot ordines historiarum in unaquaque notitia mensa queritur, et alia indicia. In specie, per methodos communes infra SQL optimize possumus:

SELECT * 1. vitare usura
SELECT* consumit CPU.
SELECT * Inutiles agros augent retis Sed copia subsidiorum consummatio et tempus transmissionis notitiae, praesertim magnae agri (ut varchar;
blob、text)。
SELECT * MySQL optimizer uti non potest ad indicem optimizationem obtegendum (indicem velandi" consilium in MySQL optimizer innixum valde celeriter et efficax est, et quaestionis optimizationis methodi in industria valde commendatur)
SELECT <agro indicem> potest reducere ictum tabularum structurarum mutationes.

2. Pagination optimization

Pagina ordinaria breve tempus relative accipit cum copia notitiarum parva est.

Si copia notitiarum magna fit, decies centena millia vel etiam decies centena millia attingens, ordinaria pagina diutissime capiet.

Quomodo ad optimize?

Primum quaesitum est valorem principalem praecipuum respondentem primo parametri limitis, deinde spargere ac limitem in hoc valore primario clavis posito, ut efficientia velocius fiat. Sed haec methodus solum operatur si ids in ordine positivo sunt.

Eventus tamen subquisitionis novam tabulam generabit, quae ad usum subqueriorum extensum vitandum erit. Haec autem methodus tantum locum habet, cum ID in serie positiva est. In multiplici pagina missionum saepe necesse est IDs eliquare quae condiciones per eliquare condiciones conveniunt. Hoc tempore IDs sunt discretae et discontinuae.

3. Do minus conjungit

Alibaba Development Manual:

Discussionem in Zhihu legere potes:

https://www.zhihu.com/question/68258877icon-default.png?t=N7T8https://www.zhihu.com/question/682588774. Commendatur ne utendi clavis externis et cascades

Alibaba Java Development Manual:

5 elige oportet genus agri

6. Conare ad CONIUNCTIO OMNES pro CONIUGATIO

CONIUNCTIO omnia notitiarum duorum eventuum in tabula temporaria ponit ac deinde operationem deduplicationem perficiet, quae plus temporis consumet et plus CPU consumit.
CONGREGATIO OMNES non amplius ex statuto duplicare poterunt, et notitia consecuta duplicata continet.
Attamen, si data duplicata non licet in actu missionis negotii, CONGREGATIO adhuc adhiberi potest.

7. Batch res

Pro notitiis updates in datorum, si batch operationes adhiberi possunt, iis utere quam maxime ad redigendum numerum petitionum datorum ac perficiendi meliorem.

8 recte usus indices

Multum est in hac sectione contentum, quae postea in separato diario introducetur.

2. binlog log

binlog (lignum binarium est fasciculus binarius) maxime refert omnes operationes quae in database MSQL mutatae sunt (omnia DDL et DML dicta a datorum exsecuta sunt), inter tabulas structurae mutationes (CREATE, ALTER, RORO TABLE.) modificationes (INSERT.UPDATE, DELETE.), sed non includit SELECT, SHOW et alias operationes quae mutationes datorum non causant.

Indicem omnium binariorum tignorum spectaculo uti potes;

2.1 Binlog format

Sunt 3 genera recording modi binarii:

  • Modus enuntiationis: Omnis SQL enuntiatio quae notitias modificat in binlogo inscripta erunt, sicut inserta, updates et deleta.
  • Row modus (commendatur): Mutatio certa cuiusque ordinis eventus in binlog notabitur. ·
  • Mixtus modus: mixtura summarii modus et ordo modus. Modus enuntiationis per defaltam adhibetur et statim permutat ad modum Row in paucis missionibus specialibus.

Comparatus cum modo Row, lima in locutionis modus minor est, orbis IO pressus etiam minor est, et melior effectus est. Sed peior modus eius accuratio est quam Row.

Ante MySQL 5.1.5, forma binlog tantum erat REI. 5.1.5 binlog in forma ROW incipere coepit. Ante MySQL 5.7.7, modus enuntiationis usus est defalta. MySQL5.7.7 utitur Row modus per defaltam.

Forma variabilium uti potes ut '%binlog%';

2.2 Munus binlog

Praecipua applicatio missionis binlogorum replicatio est dominus-servus, herus, et herus-servus omnes inseparabiles sunt ab binlog.

Principium replicatio domini servi ostenditur in figura infra;

1. Praecipua bibliotheca scribit mutationes in notitia in datorum ad binlog
2. servo bibliothecam ad coniungere bibliothecam principalem
3. Servus bibliothecam filum I0 creabit ut petat binlogum renovatum e bibliotheca principalis.
4. Praecipua bibliotheca creabit binlogum dump linum ut binlogum mittat, et I/0 filum in bibliotheca servili recipiendi respondeat stipes.
6. Truncum Nullam e SQL bibliothecae stamina lege et notitias locales (hoc est, iterum SQL exequi)

2.3 Quomodo eligendi leo pro binlog rutilant?

Ad InnoDB machinam repositam, in executione transactionis, stipes primum binlogcache scribetur. Solum cum negotium exhibetur, log in binlogcacha perseveret ad fasciculi binlogorum in disco. Scribere ad memoriam velocior est, et hoc etiam causa efficientiae fit.

Quia binlog transactionis scindi non potest, quantumvis magnum negotium est, semel scribi debet, ideo ratio memoriam singulis stamina collocabit sicut cache binlog. Molem binlogcache unius fili per parametri binlog_cache_size temperare possumus. Si contentus repono modulum hunc excedit, ad tempus in disco condi debet (VERTO).

Quando ergo binlog rubens est in disco?
·0: Nequaquam mandati postulationem ratio decidet cum in disco scribere.
·1: Quotiens negotium submittatur, binlog orbis scribendus est;
·N: Binlog scribetur in orbe omnium N transactionum.Periculo damni

Ante MySQL5.7, valor default sync_binlog erat 0. Post MySQL5.7, valor sync_binlogorum defectus est 1. Fere non commendatur ut valorem sync_binlog adhibeat ad 0 . Si exsecutio requisita sunt relative alta vel disci IO bottleneck occurrit, valor sync_binlog congrue augeri potest.

2.4 Quomodo binloga regenerabitur?

Cum tres sequentes condiciones conveniendi, MySQL novum fasciculum stipes regenerabit et tabella numerus serialis augebitur.

  • MySQL server sistit vel restarts
  • Post utens rubor omnia imperium
  • Post binlog lima amplitudo limen max binlog magnitudinum variabilis excedit.

3. recto log redo iniuriarum

Scimus InnoD8 machinamentum repono spatium repositionis in unitatibus paginis administrare. Notitia quae in MySQL inserimus ultimo exsistit in pagina. Ad redigendum orbis IO caput, est etiam regio nomine Buffer Pool, quae in memoria exstat. Cum pagina nostra notitiae nostrae respondens in Buffer Pool non existit, MSQL primum paginam in disco in Buffer Pool aperiet, ut postea paginam in Buffer Pool operando directe operando, quod legendi et scribendi perficiendi rationem valde melioret. .

Post transactionem committitur, modificationes nostrae ad paginam respondentem in Buffer Pool perstare non possunt ad disci. Ad hoc tempus, si MySQL subito inruerit, mutationes in hoc negotio statim evanescunt?
Patet non, si sic evidens esset transactionis firmitatem violare.

In MySQLInnoDB machinam redo stipes utitur ad firmitatem transactionis utatur. Summa redo index facit modificationes paginae recordari, quales sunt quot bytes in quadam pagina quadam cinguli mutati sunt et quidnam specificum contentum mutationis sit. Singulis tabulis in redo stipes continet numerum tabulae spatii, numerum paginarum notarum, offsets, notitias modificatas specificas, ac etiam notare longitudinem datarum mutationum (secundum genus redo logae).
Cum negotium commissum est, stipes redo in disco secundum belli rutilantium ruborem reddemus. Hoc modo, etiamsi MySQL fragore, notitia quae in orbe scribenda non est, post restarting recuperari potest, inde ad diuturnitatem procurandi. de transactione. Aliis verbis, redo stipes MySQL fragore recuperandi facultatem dat.

1. Ensure notitia vetustatem (Durability)

Redo Log refert omnes operationes modificationes ad datorum. Cum datorum operas scribendas operationes exercet (INSERT, UPDATE, DELETE), hae operationes primum in Redo Log notentur et deinde ad tabella notitiae applicabuntur. Hoc modo, etiamsi ratio defecerit antequam operatio notitiae modificationis perfecte scripta sit orbis, Redo Log efficere potest ut data non amittatur. Per recuperationem, datorum modificationem imperfectam has operationes ex Redo Log reddet ut notitia constantiae efficiat.

2. Data recuperatio (Recuperatio)

Redo Log adiuvat database recuperare ad statum constantem post fragorem systematis vel inopinatae potentiae eu ipsum. Per processum recipiendum, datorum tabulas in Redo Log reprimet et omnia re-applicabit submissa, sed non perseuerauit notitias modificationes ad notitias datas recipiendas.

3. Meliorem scribe perficientur

Ad emendandas operationes scribendas, databases saepe utuntur machinae caching (ut quiddam lacus) ad tempus modificationis operationum reponunt in memoria loco statim scribens eas in disco. Exsistentia Redo Log hanc mechanismum caching possibilis facit, quia quandiu Redo Log cavetur perseverare, nullum periculum notitiarum detrimentum est etiamsi notitia in cella in disco scripta non sit.

Cum transactionem committens, redo stipes in quiddam in iniuriarum rubens in disco uti potes
modulo imperium committere. Attendendum est ut ad rectam ruborem consilium innodb_flush_log_at_trx_commit.

innodb_flush_log_at_trx_commit Magni momenti est conformatio parametri in machina MySQL InnoDB repositionis. Determinat ruborem (rubrum) et scribe (scribe) rationes iniuriarum cum negotium exhibetur, sic afficiens notitias vetustatem et effectum. Habet tres valores, scilicet 0, 1 et 2. Quaelibet valor diversum militarium deterget.

  • innodb_flush_log_at_trx_commit = 0

    • describere : Cum negotium committit, stipes scribitur ad quiddam stipes, sed non statim ad disco. Tabulae stipes scriptae sunt in secundo singulis orbis disco, et quiddam talearium secundo subnixum est.
    • commodum: Superioris effectus, quia orbis I/O operationes reducuntur.
    • defectus: Cum systema inruerit, omnes transactiones in 1 ultima secunda amitti possunt.
    • Lorem scaena: Apta ad applicationes missionum cum maximis requisitis et solutione data pervicacia requisita.
  • innodb_flush_log_at_trx_commit = 1

    • describere : Quotiens negotium committit, stipes in disco statim scriptus est et quiddam truncum statim in disco subnixum est. Haec est certissima occasus et firmitatem transactionis praestat.
    • commodum: Summum securitatis est, ut omne negotium submissum persistat, resque gestas amitti non sinat etiam si ratio inruerit.
    • defectusInferior effectus, quia singulae operandi triggers orbem I/O operandi.
    • Lorem scaena: Apta applicationi missionum quae altam datam perseverantiam requirunt, ut systemata nummaria, e-commercium, etc.
  • innodb_flush_log_at_trx_commit = 2

    • describere : Quoties gesta res committit, stipes scribitur ad quiddam stipes ac statim in disco subnixum, sed non statim ad tabellam scriptam. Tabulae inscriptae semel in secundo orbe scriptae sunt.
    • commodum: Melior effectus est aliquatenus, dum moles notitiarum quae amitti possunt (transactiones in secundo 1° pereunt ad summum).
    • defectus: Cum systema inruerit, transactiones in 1 ultima 1 secunda amitti possunt.
    • Lorem scaena: Apta ad applicationes missionum, quae quaedam requiruntur staterae in effectu et data vetustate.

De bellicis penicillo summary

  • 0: optimus effectus, sed summum periculum, all transactions in the last 1 second may be lost.
  • 1Tutissimum est, ut omne negotium commissum persistat, et effectus relative humilis est.
  • 2: Compromissum inter observantiam et securitatem.

4. Data damnum occurs

1. Redo stipes scriptum est ad quiddam sed nondum ad paginae cache scriptum. Hoc tempore, ruinarum datorum et notitiarum detrimentum incidit (haec notitia detrimentum fieri potest cum valor rubenti consiliorum innodb_at trx_commit est. 0);

2. Stipes redo ad paginam cache scripta est sed in disco nondum scripta est. Ratio operativa in ruinam et notitiarum detrimentum fieri potest. 2).

5. Quid interest inter binlogum et redologum?

  • Binlog maxime adhibetur ad restitutionem datorum, quae ad recuperationem datarum graduum pertinet. Replicatio magistri servi est frequentissima applicatio missionis binlogorum.
  • Redologum unicum machinae InnoDB est, et binlog omnibus machinarum repositionis communis est, quia binlog a Servo tabulato MySQL effectum est.
  • Redologa est stipes physicus, quae maxime modificationem cuiusdam paginae memorat. Binlog index logicus est, qui maxime omnia DDL et DML enuntiationes datorum datorum commemorat.
  • Binlog scribitur appensione, et nullus est modus in magnitudine. Redolog utitur ansa scribendi methodo scribendae, cum certa magnitudine.

4. undo log undo log

Undo Log (logum rollback) est index usus in systemate datorum ad operationes modificationes recordandas. Refert operationes contrarias (i.e. undo operationes) omnium modificationum operationum quae datae sunt in transactione executioni. Undo Log agit munus praecipuum in transactionis reverti.

Quomodo Undo Log efficit atomitatem transactionum

Atomicitas rei geste significat omnes operationes rei gestae aut omnes exsecutioni mandari aut nullae exsecutioni mandari. Undo Log efficit atomitatem negotiorum per sequentes machinationes:

  1. Record undo res In transactionis exsecutione, quaelibet modificatio operationis ad datam operationem correspondentem undo in Undo Log ante modificationem ipsam notabit. Exempli gratia, si res gestas valorem ordinem tabularum renovat, vetus valor in Undo Log ante adaequationis inscriptus erit.

  2. Reversum transaction Si transactio aliqua de causa deficit (ut error vel expressa revertitur), systema datorum Undo Log legit et notitias civitati restituit antequam res inceptae secundum operationem undo scriptam. Hoc modo efficere potes ut transactionis incassum nullam vim datorum habeat, ita ut atomicity transactionis.

Quote:

Detailed explicatio legere-scribere separationis et sub-databasi et mensae |