MYSQL编程:MySQL手册版本 5.0.20-MySQL同步(三)
DBaaS会导致单一客户利润率的下降,因为云服务一般是依靠MySQL学习教程数来抵消较低的利润率。mysql<pstyle="TEXT-INDENT:2em">6.5分歧MySQL版本之间的同步兼容性<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">最早的二进制格局是在MySQL3.23中开辟出来的。在MySQL4.0中改善了,MySQL5.0又改善了。在设置同步时必要晋级服务器的话,它们之间的因果干系在"6.6UpgradingaReplicationSetup"中形貌了。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">假如只体贴同步,任何MySQL4.1.x版本和MySQL4.0.x是一样的,由于它们都利用不异格局的二进制日记。以是,这些版本是相互兼容的,它们之间能够无缝地运转同步。一个破例的情形是,MySQL4.0.0到4.0.2因为开辟的较早,没法和厥后的版本相互兼容,以是不要利用它们(它们是4.0版本的alpha系列。它们之间的兼容性在公布包的手册中均有相干文档)。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">下表展现了分歧版本的MySQL之间的master/slave同步兼容性。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">MasterMasterMaster3.23.33andup4.0.3anduporany4.1.x5.0.0Slave3.23.33andupyesnonoSlave4.0.3andupyesyesnoSlave5.0.0yesyesyes<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">一个一般的划定规矩是,我们倡议利用比来的MySQL版本,由于同步兼容性一向在改良。我们也倡议master和slave都利用统一个版本。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">6.6晋级同步<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">假如晋级服务器时触及到设置同步,晋级设置的步骤跟以后版本和晋级后的版本分歧而异。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">6.6.1晋级同步到4.0或4.1<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">本节合用于从MySQL3.23晋级到4.0大概4.1的情形。4.0的服务器必需是4.0.3大概更高,"6.5ReplicationCompatibilityBetweenMySQLVersions"中提到了。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">把master从MySQL3.23晋级到4.0或4.1时,起首要确认这个master的一切slave都已是4.0或4.1了,不然的话,要先晋级slave:挨个封闭,晋级,重启,重启同步等。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">经由过程以下步骤能够完成平安地晋级,假定master要晋级到3.23,而slave已是4.0或4.1了。注重,master晋级后,不要重启利用任何旧的二进制日记的同步,由于它会搅扰到4.0或4.1slave的同步。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">在master上实行FLUSHTABLESWITHREADLOCK语句,制止一切的更新。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">比及一切的slave都跟上了master的数据更新。在master上实行SHOWMASTERSTATUS语句获得二进制日记和偏移地位。然后,再slave用这些值实行SELECTMASTER_POS_WAIT()语句,它会制止slave上的同步且前往它已同步的偏移地位。然后在slave上实行STOPSLAVE语句。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">封闭master,将它晋级到MySQL4.0或4.1。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">重启master,记下它的新的二进制文件名。能够在master上实行SHOWMASTERSTATUS语句来获得这些信息。然后在每一个slave上都实行以下语句:<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">mysql>CHANGEMASTERTOMASTER_LOG_FILE=binary_log_name,<pstyle="TEXT-INDENT:2em">->MASTER_LOG_POS=4;<pstyle="TEXT-INDENT:2em">mysql>STARTSLAVE;<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">6.6.2晋级同步到5.0<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">本节合用于从MySQL3.23,4.0或4.1晋级到5.0的情形。4.0的服务器必需是4.0.3大概更高,"6.5ReplicationCompatibilityBetweenMySQLVersions"中提到了。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">起首,注重到MySQL5.0仍是alpha公布系列。它在各方面都比旧版本好(更简单晋级一些同步中主要的会话变量,比方sql_mode;概况请看"C.1.3Changesinrelease5.0.0(22Dec2003:Alpha")。不外,它还没经由普遍测试。因为是alpha版本,我们不倡议用于任何临盆情况(如今已能够用于临盆了,译者注)。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">把master从MySQL3.23,4.0或4.1晋级到5.0.0时,起首要确认这个master的一切slave都已是5.0.0了,不然的话,要先晋级slave:挨个封闭,晋级,重启,重启同步等。5.0.0的slave能够读取晋级前写进的实行语句的中继日记。晋级完后的slave创立的中继日记就是5.0格局了。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">当一切的slave都晋级完了,封闭master,晋级到5.0.0,然后重启。5.0.0的master也能够读取旧格局的二进制日记。slave能辨认旧的格局而且公道处置它们。master上新建的二进制日记都是5.0.0格局的。slave也能辨认这格局。<pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em"><pstyle="TEXT-INDENT:2em">换言之,在晋级到5.0.0时无需特别的划定,除非在晋级master到5.0.0之前slave必需利用旧版本的。注重,把5.0.0升级到旧版本中不克不及主动地做了:必需确保一切的5.0.0格局二进制日记和中继日记都已处置完了,然后才干把它们删除完成升级。人们常说“成功孕育成功”,这种说法明显非常适合MySQL的情况。MySQL学习教程这个开源数据库号称在全世界有超过110万份的完全安装。 可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。 我们学到了什么?思考问题的时候从表的角度来思考问 对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。 每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。 varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。 是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。 连做梦都在想页面结构是怎么样的,绝非虚言 如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
页:
[1]