计算机专业中英文论文

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MySQLHistoryandArchitectureMySQLhistorygoesbackto1979whenMontyWidenius,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/serv

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功