Technology sharing

[Interview quaestiones] MySQL (Part 4).

2024-07-12

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

1. Loquamur de gradibus propositionis MySQL exequendi in detail.

Gradus pro Servo iacuit ad SQL exequendum in ordine sunt:

Petitio clientis -> Connector (verifica identitatem usoris et licentias largire) Query cache (protinus reddere si cache existit, operationes subsequentes si minus perficias) Analyzer (analysis lexicalis et analysin SQL syntaxin praestare) Optimizer (optimizationem SQL executionem maxime methodum eligere optimale consilium exsecutionis) Exsecutor (cum exsequens, primum inspicias num permissio usoris habeat et postea utatur instrumento instrumenti ab hoc machinamento instructo) -> Vade ad tabulatum machinae ad reditus notitias obtinendas (si cella quaesitio vertitur in; Proventus interrogationis Caching) erit

2.Buffer Pool

Quiddam Pool magna pars machinae InnoDB in datorum MySQL repositionis est. Maxime usus est ad mensam datam et indicem datam ad redigendum orbis I/O operationes ac efficientiam datorum meliorem. Haec est accurata analysis of Buffer Pool:

1. notiones fundamentales

  • definition: Quiddam piscinae memoria area in machina InnoDB reposita est, ad paginas chartacas et indices paginas in disco ad redigendum accessum directum in disco.

  • effectus: Improve data accessum celeritatem et discindi I/O constat per mechanismum caching.

  • compositio : Quiddam Pool constat ex paginarum paginarum conditivorum (Page) et cuneos potestate respondentes. Clausus moderatus notitias metadatas paginae paginae reponit, ut spatium ad quod pertinet, notitia paginae, inscriptio paginae in Buffer Pool, etc.

2. magnitudine et configuratione

  • default magnitudineDefectus magnitudinis Buffer piscinae in MySQL plerumque 128MB est (sed nota placet quod variae versiones MySQL vel diversae figurationes causare possunt magnitudinem default diversam esse).

  • Configurationis parametri: passinnodb_buffer_pool_sizeParametri magnitudinem Buffer Pool configurare possunt. Solet commendatur ut eam ad 60%-80% systematis memoriae consignet.

  • memoria destinatio: quiddam piscinae continuum spatium memoriae est. Cum MySQL per aliquod temporis spatium decurrat, paginae cache duae liberae erunt et paginae cache in spatio memoriae adhibitae.

3. Data pagina genera et administratione

  • type

    : Paginae in Buffer piscinae datae in tres species distingui possunt secundum earum conditionem: Pagina libera, Pagina munda et Pagina immunda.

    • Paginae liberae: paginae cache quae non sunt usus.

    • Pagina munda: Pagina cache quae usus est sed notitia non mutata est.

    • Sordida pagina: Pagina chartacea usus est et notitia mutata est, et notitia eius cum notitia in disco repugnat.

  • administrare

    : InnoDB has paginas cache per tres compages indicem coniunctorum administrat:

    • Liber coniunctus indicem: paginas liberas administrat et in notitia clausorum liberarum paginarum actis moderatur.

    • LRU indicem coniunctum: paginas mundas et sordidas paginas administrat, emendato LRU algorithmo utitur, et in areas novellas et areas antiquas divisa est ad ratem latibulum cinematographicum optimize.

    • Flush coniunctum album: sordidas procurat paginas quae ruborem in disco indigent, temporis modificatione digestum.

4. Opus mechanism

  • notitia accessum : Cum paginae datae adiri debent, InnoDB primum inspicias num pagina in Buffer Pool iam sit. Si iam existit, pagina directe adhibetur;

  • Data Update: Cum data pagina modificatur, pagina pro sordido notabitur et ad ruborem coniunctum adiici potest album expectare linum ut ruborem in disco.

  • cache evictionem: Cum spatium quiddam piscinae insufficiens est, minimus pagina cache recenter adhibita secundum algorithmum LRU tolletur.

5. Optimization et cautiones

  • Set in magnitudine convenienter: Rationabile occasus secundum memoriam ratio et onus database condicionesinnodb_buffer_pool_sizemodulo.

  • Monitor et adjust: Regulariter monitores usus et effectus indices Buffer Pool ac adaptationes ut opus fac.

  • Vitare plena mensa scan: Plena mensa scan faciet magnum numerum paginarum notitiarum in Buffer Pool oneratum, rate cella reducendo.

Ad summam, Buffer Pool unum est e elementis clavis InnoDB machinae repositae in database MySQL. Per rationabilem configurationem et administrationem, persecutio et efficientia datorum signanter emendari possunt.

3.MySQL processus

Processus MySQL plures nexus implicat, incipiens a connexione inter clientem et MySQL cultorem, ad executionem, optimiizationem, datam lectionem et reditum proventuum SQL sententiarum. Haec est accurata descriptio processus MySQL;

1. Connection et authenticas

  1. Connector (Connection Manager):

    • Cum client (ut instrumentum applicationis vel lineae mandatum) nexum petit servo MySQL, iungo MySQL responsabilis est ad has nexus petitiones tractandas.

    • Connexus verificat identitatem et permissiones huius, quae proprie includuntur recognitionem usoris et tesserae inserere.

    • Si verificationis succedit, connector clienti SQL operationibus subsequentibus filum (vel sessionem) collocabit.

2. Query processui

  1. Query Cache (Query Cache, nota: Modulus hic in MySQL 8.0 remotus est);

    • Pro selectis quaestionibus, MySQL primum inhibet num interrogatione eadem eiusque proventus in cache interrogatione existant.

    • Si praesens, MySQL directe eventus in cella reddet, ita vitans operationem interrogationis actualis faciendo.

    • Tamen, cum interrogatione caching data inconstantiam causare potest (exempli gratia, notitia conditiva ab aliis negotiis mutata potest), quaesitio caching munus remotum est in MySQL 8.0.

  2. Parser:

    • SQL enuntiatio a client missa primum ad parser missus est.

    • Munus parser est enuntiatum SQL dividere, reprehendo utrum eius syntaxin sit recta, eamque in structuram datam internam convertat (qualis est arbor parse vel arboris syntaxis).

    • Si error syntaxis in SQL propositione est, parser ad clientem errorem informationes reddet.

  3. Preprocessor:

    • In nonnullis MySQL versionibus vel in aliquibus missionibus specificis, praeprocessus scaena esse potest.

    • Praeprocessor maxime responsabilis est plurium enuntiationum SQL processus, ut iniecta sive mensa sive campus existat, expandendo * in propositione selecta omnibus columnis in tabula, etc.

  4. Optimizer:

    • Optimizer responsabilis est ad diversa consilia exsecutionis spectantia pro SQL declarationibus aestimandis et consilium optimale exsecutionis deligendo.

    • Optimizer varias causas considerat, ut indices in promptu, efficientiam coniunctionis methodi, sumptum quaesitionis, etc.

    • Optimizer signanter emendare interrogationem perficiendam per operationes potest ut indicibus utens, quaestionibus reordinandis vel quaestionibus bus.

  5. Executor:

    • Exsecutor operationes interrogationis actuales exercet quae in executione consilii ab optimizer generati sunt.

    • Exsecutor vocabit interfaciem machinae repositae (ut InnoDB) ut in tabula data legere et operationes facere ut genus, aggregationem et eliquationem.

    • Exsecutor denique proventus interrogationi refert ad clientem.

3. Data repono et retrieval

  • Repono Engine:

    • MySQL plures machinas repositiones sustinet, et unaquaeque machina repono proprias notitias repositiones et modos retrievales habet.

    • InnoDB unus est e machinarum MySQL scriptorum repositionis et subsidiis datorum provectorum notas sicut processus transactionis, gradus ordinis densis et claves exteras.

    • Cum exsecutor instrumenti machinationis repositionis vocat, machina repositionis responsabilis est legendi notitia ex orbe vel scripto data in disco.

  • Quiddam Pool:

    • Instrumentum repositionis InnoDB utitur Buffer Pool ad mensam datam et indicem notitiarum ad cinematographicam accessum directum ad disco redigendum.

    • Datae paginae in Buffer Pool administrantur secundum accessum frequentiae ac status modificationis ad meliorem cache tionem et inquisitionem faciendam.

4. transactionis processus

  • Transactio:

    • MySQL processui transactionis sustinet, plures operationes permittens ut totum committatur vel revolvatur.

    • In transactione exsecutione, MySQL informationes iniuriarum necessarias recordabit (sicut redo stipes et log undo) ut notitia integritatis et constantiae curet.

    • Si transactionis exsecutio succedit, omnes modificationes in database perpetuo servatae erunt; si transactio exsecutionis deficit, stipes solvendo uti potes ut operationem reverti possit et notitias civitati restituas antequam res incepit.

5. Libri

Processus MySQL nexum et authenticationem involvit, processus interrogationis, repositionis et retrievalis, et processus transactionis. Singulos gradus optimizing in his nexibus, perficiendi et constantiam database MySQL in signanter emendari possunt. Simul, intellegens processum executionis MySQL adiuvabit etiam ad melius intellegendum eius internam operationem mechanismum, eo quod melius datorum cogitans et optimizing.

4.MySQL nexu piscinam

MySQL nexus piscinae technicae usus est ut nexus datorum administrandi et reuse destinatur. Explicatio sequens est explicatio de MySQL nexu piscinae;

1. conceptus

MySQL nexus piscinae sufficientem numerum nexuum datorum cum ratione incipit, et has nexus uniformiter ad nexum piscinae formandum administrat. Cum programma datorum accedere debet, dynamice applicabit nexum e nexu piscinae, et nexum ad nexum piscinae post usum redde, pro recreatione claudendique nexum cuiusque operationis.

2. Cur nexum collatis?

  1. Redigendum resource consummatio : Creatio et occlusio nexus database est processus edax relativi temporis, involuens trium manuum et quattuor viae undam nexus TCP, necnon processus authenticas datorum. Per nexum collatis nexus exsistentes reddi possunt ad haec capita reducere.

  2. Improve perficientur : In summo concursu missionis, si novus nexus datorum pro singulis rogationibus creatur, effectus ministri signanter decidet. Lacus nexum usus potest signanter meliorem responsionem celeritatem et perputium datorum emendare.

  3. Ne nexum libero eu : Sine nexu piscinae, si exceptio fiat cum rationem claudit nexum, potest causare nexum lacus, id est nexum recte non claudi et facultates systematis obtinet. Connexio piscinae hanc condicionem per tempus redivivus mechanismum vitare potest.

3. Opus principium nexum piscinae

  1. initialization "Cum programma incipit, nexus piscinae certos nexus datorum secundum figuram creabit, easque nexus in nexu piscinae pro tergum ponet.

  2. Applicare pro nexu Cum programma datorum accedere debet, nexum e nexu piscinae applicabit. Si otiosa connexio est in nexu piscinae, recta ratio ad usum reddetur; si inutilis connexio non est, certum temporis spatium exspectabit secundum schematismi vel errorem reddet.

  3. Usus nexum: Propositum rogato nexu utitur ad operationes databases praestandas.

  4. reditus nexu Postquam operatione perficitur, propositum nexum redit ad nexum piscinae. Connexio lacus certos nexus compescit. Si nexus adhuc validus est, in nexum piscinae restituetur;

  5. Prope nexum piscinae: Cum programma finit, omnes nexus in nexu piscinae claudentur et facultates systematis occupatae solventur.

4. Connection piscinam provisor

Multae sunt nexus MySQL provisores piscinae in mercatu, inter quas magis populares sunt:

  • DBCP : Fons patens est nexus lacus deducendi sub Apache project, et est nexus piscinae quae cum Tomcat venit. Celerior est quam aliae lacunae nexus, sed satis stabilis non potest.

  • C3P0 : Fons patens est JDBC connexio piscinae, quae instrumentorum notitiarum fons et JNDI ligans, et JDBC3 vexillum et JDBC2 extensionem vexillum sustinet. Ratam C3P0 relative tarda est sed valde stabilis.

  • druid (Druides): Est fons apertus nexus piscinae ab Alibaba praeditae. Commoda DBCP et C3P0 coniungit et functiones magnas vigilantiae et expansionis praebet. Druid nunc est unus e stagnis usitatis MySQL connexionis.

5. Connection stagnum configuratione

Configuratio nexus lacus plerumque includit sequentes aspectus.

  • Maximum numerum hospitum: Maximus numerus nexuum qui piscinam nexum administrare possunt.

  • Minimum numerus nexus: Primus numerus nexuum creatus est cum nexus lacus incepit.

  • Ut nexum timeout: Maximum tempus est exspectare quando nexum ex nexu piscinae nanciscitur.

  • Connexionem verificationis: Comproba validitatem connexionis ante obtentam connexionis vel redeuntis nexum.

  • Connection redivivus belli: Redivivus nexus innititur otioso tempore et usu temporis.

6. Relationes nexus piscinae et piscinae

Connexio mera et sequela collatio duae sunt variae subsidii technologiae collativae, sed quaedam intercedit relatio. Stagnum sequela maxime ad filorum opes administrandas adhibetur, dum nexus piscinae ad nexus datorum administrandas adhibetur. Cum filo in phialis stamina opus ad operationem datorum perficiendam, connexionem e nexu piscinae applicabit; Haec relatio adiuvat ad subsidia efficiens utilia et ad faciliorem reddendam administrationem.

Ad summam, MySQL nexus lacus maximus est technologiae database iunctio procuratio. Praebet validum auxilium datorum operationum per nexus reusing, reducendo resource consummatio et effectus meliori. In applicationibus actualibus, congruum nexum provisor piscinae et configurationis parametri seligi possunt secundum specificas necessitates et missiones rei.

Interview interrogationes ad MySQL tigna pertinentes possunt plures aspectus comprehendere, incluso genere, munere, configuratione, optimiizatione lignorum, ac applicatione lignorum in data recuperatione, data replicatione, etc. Nonnullae sunt quaestiones communes MySQL log relatas colloquii quaestiones eorumque singula responsa:

5. Quae sunt tigna communia in MySQL? Quid est proprium munus?

Tigna communia in MySQL includuntur quae sequuntur:

  • Error Log : Error indicio cum MySQL server incipit, currit vel desinit, tum quodlibet informationes erroris criticae. Hoc problema egritudo adiuvat.

  • Query iniuriarum (Log Generalis) : Commemorare clientem omnem petitionem et responsionem a MySQL servo receptam, incluso usoris activitates login, declarationibus SQL executis, etc. De more propter auditing vel debugging.

  • Tardus Query Log : SQL notare constitutiones quarum exsecutio tempus limen excedit, necnon tempus exsecutionis, tabulae accessiones, indices adhibiti et aliae informationes harum declarationum. Usus est ad perficiendum tuning et quaesitum optimizationem.

  • Binarii Log (Binlog pro brevi): Narrat omnes propositiones quae mutant notitias datorum (exclusis sententiis ut lego et ostendo), maxime adhibitae sunt ad replicationem et ad recuperationem datam.

  • Redo Log: In InnoDB machinam repositam, ad vetustatem transactionum curare adhibetur. Etiamsi fragor systematis incidit, notitia per redo omnia recuperari potest.

  • undo Log: In InnoDB machinam repositam, ante rem gestam incipit commemorare notitias civitatis, ut, cum res deficit vel revolvitur, notitia rei publicae restitui possit antequam res inceperit.

  • Nullam Log: In MySQL replicationis architecturae, stipes cursorii in servo servo adhibetur ut stipes binarias a domino servo receptas reponat.

6. Quomodo efficere et configurare tardum inquisitionem logam?

Tardus interrogationis index aperiri et configurari potest per fasciculi MySQL configurationis (ut my.cnf vel my.ini), vel dynamice per mandata SQL erigi potest.

  • Configurationis modus file:

    • Sequentes ambitus addere vel mitigare in fasciculo MySQL configurationis:

      [mysqld]  
      slow_query_log = 1  
      slow_query_log_file = /path/to/your/slow-query.log  
      long_query_time = 2

      in,

      slow_query_log

      Usus est ut omnia quaesita tarda,

      slow_query_log_file

      Iter specificare lima interrogationi tardae:

      long_query_time

      Tempus exsecutionis constitutionum SQL constitue numerum secundorum excedentem in interrogatione tarde notata esse.

    • Post file configurationem mutato, necesse est ut MySQL sileo ministerium.

  • SQL imperium modus:

    • Tarda iniuriarum interrogationis dynamice parari potest per mandata SQL, sedslow_query_log_fileetlong_query_timeParametri opus per limam configurationem constitui possunt, sicut occasus dynamicus non sustineri potest nec operari potest.

    • Admitte tardus inquisitionis iniuriarum:

      sql复制代码
      ​
      SET GLOBAL slow_query_log = 'ON';
    • Nota quod tarde quaesitum stipes dynamice aperitur utens SQL praeceptum irritum fieri potest postquam systema restarted, ideo commendatur ut per limam configurationem apponatur.

7. Quot formatae sunt ibi pro binario stipes (Binlog)? Quid interest?

Tigna bina (Binlog) tres formas habent:

  • REI : SQL enunciatio substructio replicatio (replicatio replicatio, SBR). In hac forma, MySQL exsecutionem declarationum SQL in binlog recordabor. Commodum est ut volumen stipes parvus sit, sed aliquas difficultates replicationis inveniat, ut functiones, triggers, processus conditos, etc., quae inconstantiam in notitia domini mancipii causare possunt.

  • ROW : Row-fundatur replicatio (RBR). In hac forma, MySQL notitias mutationum versuum mutationum notabit. Commodum habet quaestiones replicationis aliquas vitandas, sed magnum volumen esse potest.

  • INCERTUS : Replicatio mixta-fundatur (MBR). MySQL automatice utendum enunciatione vel ORDINE forma secundum situm eliget. Modus mixtus est modus default et ordinatur ad optimos utriusque mundi componendos.

8. Quomodo Redo Log firmitatem negotiorum praestat?

Redo Log firmitatem transactionum in InnoDB repositionis machinamentis efficit his modis:

  • Cum res proposita sit, machina InnoDB primum aperiet truncum transactionis redo in quiddam in memoria, simulque renovat paginam debitam in memoria.

  • Tunc opportuno tempore scribe in redo stipes in redo quiddam ad fasciculi redo stipendii in disco. Processus hic asynchronus est, sed leo et frequentia orbis percute possunt conformando parametris coerceri.

  • Si fragor systematis incidit, machina InnoDB machinam stipendii rudis in startup reprehendo et modificationes nuper factas a recentissimis transactionibus subnixas in actis actis restituet, inde ad vetustatem datam praestandam.

9. Breviter describere quomodo videre et delere fasciculos stipes in MySQL.

Visum stipes lima

  • Error iniuriarum: Hoc fieri solet per inspectionem fasciculi MySQL configurationislog_errorparameter est specificare lima iter ad collocare errorem stipes lima ac utere textu editore vel imperio linea ut instrumentumtailcatetc.) videre contenta.