计算机专业中英文论文文档格式.docx
- 文档编号:18680071
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:6
- 大小:24.21KB
计算机专业中英文论文文档格式.docx
《计算机专业中英文论文文档格式.docx》由会员分享,可在线阅读,更多相关《计算机专业中英文论文文档格式.docx(6页珍藏版)》请在冰豆网上搜索。
MySQLhistorygoesbackto1979whenMontyWidenius,workingforasmallcompanycalledTcX,createdareportingtoolwritteninBASICthatranona4Mhzcomputerwith16KBRAM.Overtime,thetoolwasrewritteninCandportedtorunonUnix.Itwasstilljustalow-levelstorageenginewithareportingfrontend.ThetoolwasknownbythenameofUnireg.
Workingundertheadverseconditionsoflittlecomputationalresources,andperhapsbuildingonhisGod-giventalent,Montydevelopedahabitandabilitytowriteveryefficientcodenaturally.Healsodeveloped,orperhapswasgiftedfromthestart,withanunusuallyacutevisionofwhatneededtobedonetothecodetomakeitusefulinfuturedevelopment—withoutknowinginadvancemuchdetailaboutwhatthatfuturedevelopmentwouldbe.
Inadditiontotheabove,withTcXbeingaverysmallcompanyandMontybeingoneoftheowners,hehadalotofsayinwhathappenedtohiscode.WhilethereareperhapsagoodnumberofprogrammersouttherewithMonty’stalentandability,foranumberofreasons,fewgettocarrytheircodearoundformorethan20years.Montydid.Monty’swork,talents,andownershipofthecodeprovidedafoundationuponwhichtheMiracleofMySQLcouldbebuilt.
Sometimeinthe1990s,TcXcustomersbegantopushforanSQLinterfacetotheirdata.Severalpossibilitieswereconsidered.Onewastoloaditintoacommercialdatabase.Montywasnotsatisfiedwiththespeed.HetriedborrowingmSQLcodefortheSQLpartandintegratingitwithhislow-levelstorageengine.Thatdidnotworkwell,either.Thencametheclassicmoveofatalented,drivenprogrammer:
“I’vehadenoughofthosetoolsthatsomebodyelsewrotethatdon’twork!
I’mwritingmyown!
”ThusinMayof1996MySQLversion1.0wasreleasedtoalimitedgroup,followedbyapublicreleaseinOctober1996ofversion3.11.1.TheinitialpublicreleaseprovidedonlyabinarydistributionforSolaris.Amonthlater,thesourceandtheLinuxbinarywerereleased.
Inthenexttwoyears,MySQLwasportedtoanumberofotheroperatingsystemsasthefeaturesetgraduallyincreased.MySQLwasoriginallyreleasedunderaspeciallicensethatallowedcommercialusetothosewhowerenotredistributingitwiththeirsoftware.Speciallicenseswereavailableforsaletothosewhowantedtobundleitwiththeirproduct.Additionally,commercialsupportwasalsobeingsold.ThisprovidedTcXwithsomerevenuetojustifythefurtherdevelopmentofMySQL,althoughthepurposeofitsoriginalcreationhadalreadybeenfulfilled.
DuringthisperiodMySQLprogressedtoversion3.22.ItsupportedadecentsubsetoftheSQLlanguage,hadanoptimizeralotmoresophisticatedthanonewouldexpectcouldpossiblybewrittenbyoneperson,wasextremelyfast,andwasverystable.NumerousAPIswerecontributed,soonecouldwriteaclientinprettymuchanyexistingprogramminglanguage.However,itstilllackedsupportfortransactions,subqueries,foreignkeys,storedprocedures,andviews.Thelockinghappenedonlyatatablelevel,whichinsomecasescouldslowitdowntoagrindinghalt.Someprogrammersunabletogetarounditslimitationsstillconsidereditatoy,whileothersweremorethanhappytodumptheirOracleorSQLServerinfavorofMySQL,anddealwiththelimitationsintheircodeinexchangeforimprovementinperformanceandlicensingcostsavings.
Around1999–2000aseparatecompanynamedMySQLABwasestablished.IthiredseveraldevelopersandestablishedapartnershipwithSleepycattoprovideanSQLinterfacefortheBerkeleyDBdatafiles.SinceBerkeleyDBhadtransactioncapabilities,thiswouldgiveMySQLsupportfortransactions,whichitpreviouslylacked.AftersomechangesinthecodeinpreparationforintegratingBerkeleyDB,version3.23wasreleased.
AlthoughtheMySQLdeveloperscouldneverworkoutallthequirksoftheBerkeleyDBinterfaceandtheBerkeleyDBtableswereneverstable,theeffortwasnotwasted.Asaresult,MySQLsourcebecameequippedwithhookstoaddanytypeofstorageengine,includingatransactionalone.
ByAprilof2000,withsomeencouragementandsponsorshipfromSlashdot,master-slavereplicationcapabilitywasadded.Theoldnontransactionalstorageengine,ISAM,wasreworkedandreleasedasMyISAM.Amonganumberofimprovements,full-textsearchcapabilitieswerenowsupported.Ashort-livedpartnershipwithNuSpheretoaddGemini,atransactionalenginewithrow-levellocking,endedinalawsuittowardtheendof2001.However,aroundthesametime,HeikkiTuuriapproachedMySQLABwithaproposaltointegratehisownstorageengine,InnoDB,whichwasalsocapableoftransactionsandrow-levellocking.Heikki’scontributionintegratedmuchmoresmoothlywiththenewtablehandlerinterfacealreadypolishedoffbytheBerkeleyDBintegrationefforts.TheMySQL/InnoDBcombinationbecameversion4.0,andwasreleasedasalphainOctoberof2001.Byearly2002theMySQL/InnoDBcombowasstableandinstantlytookMySQLtoanotherlevel.Version4.0wasfinallydeclaredproductionstableinMarch2003.
ItmightbeworthyofmentionthattheversionnumberchangewasnotcausedbytheadditionofInnoDB.MySQLdevelopershavealwaysviewedInnoDBasanimportantaddition,butbynomeanssomethingthattheycompletelydependonforsuccess.Backthen,andevennow,theadditionofanewstorageengineisnotlikelytobecelebratedwithaversionnumberchange.Infact,comparedtopreviousversions,notmuchwasaddedinversion4.0.Perhapsthemostsignificantadditionwasthequerycache,whichgreatlyimprovedperformanceofalargenumberofapplications.Replicationcodeontheslavewasrewrittentousetwothreads:
onefornetworkI/Ofromthemaster,andtheothertoprocesstheupdates.Someimprovementswereaddedtotheoptimizer.Theclient/serverprotocolbecameSSL-capable.
Version4.1wasreleasedasalphainAprilof2003,andwasdeclaredbetainJuneof2004.Unlikeversion4.0,itaddedanumberofsignificantimprovements.Perhapsthemostsignificantwassubqueries,afeaturelong-awaitedbymanyusers.SpatialindexingsupportwasaddedtotheMyISAMstorageengine.Unicodesupportwasimplemented.Theclient/serverprotocolsawanumberofchanges.Itwasmademoresecureagainstattacks,andsupportedpreparedstatements.
Inparallelwiththealphaversionof4.1,workprogressedonyetanotherdevelopmentbranch:
version5.0,whichwouldaddstoredprocedures,server-sidecursors,triggers,views,XAtransactions,significantimprovementsinthequeryoptimizer,andanumberofotherfeatures.ThedecisiontocreateaseparatedevelopmentbranchwasmadebecauseMySQLdevelopersfeltthatitwouldtakealongtimetostabilize4.1if,ontopofallthenewfeaturesthattheywereaddingtoit,theyhadtodealwiththestoredprocedures.Version5.0wasfinallyreleasedasalphainDecember2003.Forawhilethiscreatedquiteabitofconfusion—thereweretwobranchesinthealphastage.Eventually4.1stabilized(October2004),andtheconfusionwasresolved.
Version5.0stabilizedayearlater,inOctoberof2005.
Thefirstalphareleaseof5.1followedinNovember2005,whichaddedanumberofimprovements,someofwhicharetabledatapartitioning,row-basedreplication,eventscheduler,andastandardizedplug-inAPIthatfacilitatestheintegrationofnewstorageenginesandotherplug-ins.
Atthispoint,MySQLisbeingactivelydeveloped.5.0iscurrentlythestableversion,while5.1isinbetaandshouldsoonbecomestable.Newfeaturesatthispointgointoversion5.2.
Forthelargepart,MySQLarchitecturedefiesaformaldefinitionorspecification.Whenmostofthecodewasoriginallywritten,itwasnotdonetobeapartofsomegreatsysteminthefuture,butrathertosolvesomeveryspecificproblems.However,itwaswrittensowellandwithenoughinsightthatitreachedthepointwheretherewereenoughqualitypiecestoassembleadatabaseserver.
Imakeanattemptinthissectiontoidentifythecoremodulesinthesystem.However,letmeaddadisclaimerthatthisisonlyanattempttoformalizewhatexists.MySQLdevelopersrarelythinkinthoseterms.Rather,theytendtothinkoffiles,directories,classes,structures,andfunctions.Itismuchmorecommontohear“Thishappensinmi_open()”thantohear“ThishappensontheMyISAMstorageenginelevel.”MySQLdevelopersknowthecodesowellthattheyareabletothinkconceptuallyontheleveloffunctions,structures,andclasses.Theywillprobablyfindtheabstractionsinthissectionratheruseless.However,itwouldbehelpfultoapersonusedtothinkingintermsofmodulesandmanagers.
WithregardtoMySQL,Iusetheterm“module”ratherloosely.Unlikewhatonewouldtypicallycallamodule,inmanycasesitisnotsomethingyoucaneasilypulloutandreplacewithanotherimplementation.Thecodefromonemodulemightbespreadacrossseveralfiles,andyouoftenfindthecodefromseveraldifferentmodulesinthesamefile.Thisisparticularlytrueoftheoldercode.Thenewercodetendstofitintothepatternofmodulesbetter.Soinourdefinition,amoduleisapieceofcodethatlogicallybelongstogetherinsomeway,andperformsacertaincriticalfunctionintheserver.
Whentheserverisstartedonthecommandline,theInitializationModuletakescontrol.Itparsestheconfigurationfileandthecommand-linearguments,allocatesglobalmemorybuffers,initializesglobalvariablesandstructures,loadstheaccesscontroltables,andperformsanumberofotherinitializationtasks.Oncetheinitializationjobiscomplete,theInitializationModulepassescontroltotheConnectionManager,whichstartslisteningforconn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机专业 中英文 论文