




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分布式关系型数据库 DRDS产品简介分布式关系型数据库 DRDS/产品简介 PAGE 27产品简介DRDS产品概要业务面临的问题单机数据库到达瓶颈单机数据库在数据存储容量、访问容量、容灾等方面都会随着业务的增长而到达瓶颈,无论哪一个,对业务来 说是一项相当艰巨的挑战。存储容量瓶颈问题,虽然可以通过在一个机器下面挂很多块磁盘,做到10T,20T,30T容量,然后使用一个MySQL实例支撑,但是数据备份、数据管理(DDL)、数据检索与更新性能(DML)都会出现大幅下滑,让我们不 得不重新考虑容量问题的解决方案。访问容量瓶颈问题,通过增加CPU/内存/磁盘/网络等硬件缓解,但是廉价X86 PC 做到
2、几十核目前就是顶配了,内存几百G也塞不下几十T数据的各种索引,磁盘IO毕竟比内存还是差点,通用网路也就到万兆,本质上无法 避免单机瓶颈容灾问题,单机总存在着0或者1的问题,所以做热备冷备,以求出故障时能够快速切换,但是数据库并不是应 用,数据库数据存在状态,存在事务,真正宕机切换对于核心业务来说真的是一个艰难决定。更要命的是,也许我们能够买到顶级容量的磁盘整列,上百核几T内存的机器,做机房、同城、异地热备冷备,但是由于数据库软件并不能充分利用硬件资源而功亏一篑,这也就是所谓的有钱也买不到符合需求的解决方 案。传统数据库成本高企传统的数据库方案基于授权、基于服务咨询,带来相对安全、封闭的解决方案
3、,但是因为缺少严格的价格对标、此种模式下存在的实施成本、销售渠道的层层盘剥,让业务付出相当高昂的代价。所以业务每年付出几十万上百万数据库预算来支撑业务的时候,也许会思考是否有更加廉价的替代方案,省钱 也好,用刀刃上也罢,仔细捋一下,产品方案挺多,但是要么贵,要么满足不了需求。NOSQL/开源方案的艰难选择上诉的种种原因,让业务将目标对准了NOSQL、对准了开源,确实这些产品当中有些产品非常优秀,能够解决1.需要做适用于企业的管控等周边系统。2.需要fix产品的bug和开发满足业务需求的功能。3.需要在稳定性、性能问题做出保障。数据库瓶颈,并且免费或者付出很少的费用,但是同时也带来了阵痛甚至是致
4、命的隐患,这些隐患归结起来以 下几个问题。最终,业务可能需要一整个团队来完全理解并开发维护这个开源产品。这个时候也给业务带来了3个问题。1.是否下定决心开发维护这些产品?2.能否做好上面3件事情?3.业务发展重心是在做上面3件事情上?数据库服务保障充满坎坷数据库是同时涉及到硬件、系统、应用逻辑等多方面的计算机技术解决方案,所涉及到的技术深度和广度在计 算机软件领域是数一数二的。数据库服务包含资源管控和生命周期管理、分布式逻辑、高可用部署和切换、容灾备份、自助运维、疑难排查 等,所涉及到的工作细节很多,更大问题是必须通过时间和丰富场景进行磨砺与积累。DRDS解决问题的方法使用分库分表解决容量问题
5、解决数据库容量问题的产品总体来说都是基于share nothing或者share anything架构,前者如同DRDS,使用多个廉价PC做数据水平拆分,服务和数据存储节点之间并不完全同步状态,后者使用共享内存、共享存储、infinibind、高配物理机结合出一个全功能数据库。share anything架构能够满足大部分用户的数据库容量需求,但是本质上如同小型机+数据库仍然会碰到容量天花板,并且相当昂贵。share nothing架构能够做到数据和访问容量通过简单堆叠机器进行扩展。DRDS通过SQL引擎和自助管控系统尽可能降低用户对分布式细节的感知。最低成本解决用户数据库查询问题DRDS需要
6、在分布式情况下处理MySQL所有的SQL,并且保持SQL语义一致,这项工作是非常细节且具有挑战 的。另外在分布式情况下,单个SQL可能涉及到多个数据存储节点的数据处理以及归并,这中间耗费在网络间 数据传输以及数据合并的时间可能会超过同样一份数据在单机上的表现。综合上诉两点,DRDS的数据水平拆分对用户使用有一定的限制,所以DRDS还提供了更低业务侵入性的读写分离功能。读写分离功能能够线性增加数据库读能力,业务创建读写分离的DRDS数据库后,换一个连接即可使用,无需 修改代码,无需迁移数据,非常适合在短时间内大幅提升数据库读性能的需求。使用云计算降低成本云计算的精华在于计算存储服务资源随开随用,
7、并且可动态扩展,快速实施,这也就意味着成本预算周期减短,并且随着规模变大,资源和管控成本会逐步降低,总体上对业务收取的费用也会逐步降低。DRDS产品本身使用阿里云云计算资源,成本也会受益于此,并且自动继承快速能力扩展、稳定性监控、资源 隔离、灾备恢复、服务保障体系等特性。DRDS产品按量计费模式、自助运维监控、动态升降配也秉承云计算核心理念,为业务带来快速、可保障的价 值。专业的工具和团队解决问题DRDS产品在阿里巴巴集团内部的对应产品是TDDL,作为集团分布式数据库接入的标准,接入了几乎所有使用 数据库的业务,磨砺了一支具备丰富分布式数据库问题解决能力的团队。其周边工具和具体业务解决方案,也
8、 在集团内部有着广泛使用和充分验证。DRDS在阿里云公测在2014年12月,商业化也将近半年时间,积累了大量内部和外部用户使用支持经验,产品 功能丰富度、稳定性、性能都有本质的提升,具备核心应用支撑能力。DRDS作为分布式数据库服务层,还提供用户业务使用支持,利用已有的经验,帮助用户设计对口其业务的分 布式数据库拆分策略,以便充分发挥分布式数据库对于业务的价值,并且长期提供咨询服务。DRDS的架构DRDS 目前定位成一个中间件,在业务应用和RDS之间,本身不承担数据存储,只负责解决分布式情况下数据操作路由、执行、数据处理等功能。DRDS特性DRDS具备share nothing架构的分布式数据
9、库所具备的主要功能和feature。简单使用DRDS的使用与MySQL非常接近,建实例、建库、建表、SQL操作,唯一比较大的区别在于水平拆分模式下,DRDS对于建表需要指定拆分字段(类似索引),只要带上这个拆分字段,SQL只会在部分数据分片上执行,从 而加速SQL执行速度。DRDS提供的读写分离功能能够很方便在线调控读在主实例和备实例的读流量,并且可通过show node指令查看实际执行的读流量分配。DRDS提供各种实用命令帮助用户更好地使用DRDS和排查问题,比如show slow查看慢SQL,show node查看数据存储节点流量分配,show datasources查看数据存储连接信息等
10、等。数据水平拆分DRDS帮助您实现分库分表,能够将原来只能在单节点执行的SQL,转变为多节点执行的SQL,如同单个数据库 体验。但是分布式数据库和单机数据库本身必然会存在一定的使用习惯上的不同,例如低效的分布式事务、分布式join等,针对这些问题,DRDS的选择是:优先考虑性能和稳定性,兼顾软件的兼容性。与市面上的一些开源的数据库切分工具相比,DRDS能够更智能的分析您的SQL,在结果集合并和分布式join优 化等关键领域,我们都有成熟解决方案,能够帮您解决在分布式数据库场景中面临的大部分问题。平滑扩展DRDS的扩展分为服务层扩展和存储层扩展,服务层扩展通过DRDS控制台的升降配功能达到服务能
11、力扩缩,存 储层扩展通过DRDS控制台的数据库平滑扩容功能进行扩展。两者都是在线进行扩展,不影响用户使用。MySQL兼容DRDS有着比较完整的MySQL SQL兼容性,旨在降低用户从传统数据库迁移到DRDS的难度。具体参见DRDS的SQL支持文档.事务支持DRDS 对于单机事务完整支持,也就是业务中一个事务中的各个SQL最终都落到同一个数据库即可保障强一致,对于跨数据库的分布式事务,DRDS提供最终一致分布式事务给业务使用,目前处于内测阶段。全局唯一数字序列服务在分布式环境下,原有的mysql sequence生成机制无法高效的生成全局唯一的sequence.我们借鉴了oracle的seque
12、nce生成样例,实现了一个在mysql基础上的高效sequence生成器,能做到没有单点性能瓶颈,具备大 并发获取和低延迟特性。DRDS sequence功能的目标只是为了保证数据的全局唯一,虽然基本上是按时间序列获取的,但并不全局有序。DRDS应用场景DRDS 具备如同上述内容所描述的问题解决能力和分布式场景下满足业务需求的各种特性,典型的应用场景如下图。DRDS简单原理读写分离对于sql进行类型判定,如果判定为读取操作,则按照用户设置的读权重进行sql路由,到主实例或者到只读上 进行sql操作。水平拆分拆分字段拆分字段是DRDS中数据分布和SQL路由的凭证。数据分布DRDS中的数据是按照拆
13、分字段值,加上特定的算法进行计算,根据结果存储数据到对应分片。SQL路由当用户SQL到DRDS时,DRDS会理解整个SQL含义,然后按照拆分字段的值和执行策略将SQL路由到对应分区 进行执行。数据合并如果一个SQL对应多个分片数据执行,DRDS会将各个分片返回的数据按照原始SQL语义进行合并。简要说明DRDS支持绝大部分MySQL语法和协议,包括类似SHOW DATABASES, SHOW TABLES, 以及各种DML语句包括SELECT,UPDATE,INSERT,REPLACE, DELETE,UNION等,以及有限的DRDS自定义控制命令. 总体来说,DRDS在常规的DML SQL使用
14、几乎没有限制,但从性能考虑,我们会有一些针对分布式系统的特殊优化方式,如小表复制,如分布式索引,请参阅我们的最佳使用场景.SQL大类的限制与约束:暂不支持用户自定义数据类型、自定义函数暂不支持视图、存储过程、触发器、游标暂不支持类似 BEGINEND,LOOP.END LOOP,REPEAT.UNTIL.END REPEAT,WHILE.DO.END WHILE 等的复合语句暂不支类似 IF,WHILE 等流程控制类语句 - 全面的DML支持,有限的DDL支持,有限的控制指令支持下面罗列了目前DRDS支持的SQL语法列表,以mysql的语法列表为蓝本,下面列出的语法代表为已支持,如有特殊 说明
15、,代表部分不支持的CASE.数据库登陆协议经过测试的客户端: Workbench , Navicat, SQLyog等数据库DDL语法CREATE TABLE Syntaxcreate table tbl_name like old_tbl_name / create table tbl_name select_statement 暂不支持拆分表CREATE INDEX SyntaxDROP TABLE SyntaxDROP INDEX SyntaxALTER TABLE SyntaxTRUNCATE TABLE Syntax数据库DML语法INSERT SyntaxINSERT DELAYE
16、D Syntax 暂不支持REPLACE SyntaxUPDATE SyntaxDELETE SyntaxSubquery SyntaxScalar SubqueryComparisons SubquerySubqueries with ANY, IN, or SOMESubqueries with ALLRow SubqueriesSubqueries with EXISTS or NOT EXISTSSubqueries in the FROM ClauseSELECT SyntaxSELECT INTO OUTFILE/INTO DUMPFILE/INTO var_name 暂不支持JO
17、IN/UNION Syntax 均支持跨分库函数支持见下表.不支持的语法:受限于分布式事务跨分片操作, UPDATE/DELETE ORDER BY LIMIT跨分片操作, UPDATE A,B set A.s = B.s+1 WHERE A.ID = B.NAME , 非拆分字段之间的跨库JOIN拆分键变更, UPDATE A SET A.ID = 1 WHERE XXX, ID为拆分字段跨分片操作, INSERT A SELECT B WHERE B.ID XX , 跨库导入导出数据跨库事物, 比如两次UPDATE不在一个分片上子查询限制暂不支持非where条件的correlate sub
18、query暂不支持sql中带聚合条件和correlate subquery例1: 父查询的select列上存在关联子查询,引用了父查询的a.user_idselect a.user_id , (select sum(score) from b where b.user_id = a.user_id) from a order by a.user_id desc limit 10例2: 父查询存在count聚合函数,where条件存在exists的关联子查询引用了a.user_idselect count(*) from a where exists (select * from b where
19、 b.user_id = a.user_id and b.score 60)数据库事务语法START TRANSACTION, COMMIT, and ROLLBACK Syntax暂不支持transaction_characteristic定义暂不支持savepoint嵌套事务的相关语法暂不支持XA事务的相关语法兼容set autocommit=0/false/off 等多种写法.SET TRANSACTION Syntax暂不支持对global的事务隔离级别进行调整数据库prepare语法PREPARE SyntaxEXECUTE SyntaxDEALLOCATE PREPARE Synt
20、ax限制: prepare协议不可与SQL多语句一起混用数据库管理语法SET Syntax目前不支持global的变更,比如SET GLOBAL var=xx或者set global.var=xx目前不支持SQL中对于变量的引用和操作,比如set c=1, d=c+1; select c, dShow SyntaxSHOW COLUMNS SyntaxSHOW CREATE TABLE SyntaxSHOW INDEXSHOW TABLES SyntaxSHOW TABLE STATUS SyntaxSHOW TABLE STATUS SyntaxSHOW TABLES SyntaxSHOW
21、VARIABLES SyntaxSHOW WARNINGS Syntax 不支持limit/count的组合SHOW ERRORS Syntax 不支持limit/count的组合其余的show指令会默认下发到DB处理,结果数据没有进行分库数据合并KILL Syntax目前只支持KILL QUERY processlist_id数据库工具命令DESCRIBE SyntaxEXPLAIN SyntaxUSE SyntaxDRDS自定义指令SHOW SEQUENCES / CREATE SEQUENCE / ALTER SEQUENCE / DROP SEQUENCE 【全局sequence管理】
22、SHOW PARTITIONS FROM TABLE 【查询表的拆分字段】SHOW TOPOLOGY FROM TABLE 【查询表的物理拓扑】SHOW BRAODCASTS 【查询所有广播表】SHOW RULE FROM TABLE 【查询表拆分定义】SHOW DATASOURCES 【查询后端DB链接池定义】SHOW DBLOCK / RELEASE DBLOCK 【分布式LOCK定义】SHOW NODE 【查询读写库流量】SHOW SLOW 【查询慢SQL列表】SHOW PHYSICAL_SLOW 【查询物理DB执行慢SQL列表】TRACE SQL_STATEMENT / SHOW TR
23、ACE 【跟踪SQL执行,profile整个执行过程】EXPLAIN DETAIL/EXECUTE SQL_STATEMENT 【分析DRDS执行计划和物理DB上的执行计划】RELOAD USERS 【同步DRDS控制台用户信息到DRDS SERVER】RELOAD SCHEMA 【清理DRDS对应DB库数据缓存,比如SQL解析/语法树/表结构缓存】RELOAD DATASOURCES 【重建后端与所有DB的链接池】数据库系统函数整体函数分为解析和执行部分函数解析: 主要指解析纯SQL中的函数定义,如果函数可以被正常解析,意味着如果用户SQL中带着了拆分字段,函数都可以下发到MySQL上进行执
24、行函数执行: 主要指用户SQL不能完全下推到MySQL得到结果的情况,需要DRDS层进行二次计算时的函数支持列表.select count(*) from users where user_id = 1; # user_id为切分条件, count(*)函数主要就是一个SQL解析然后发给MySQL执行,这一类的行为就取决于DRDS的函数解析的支持能力.select count(*) from users; # 用户SQL未带切分条件, DRDS会对每个分片返回的count结果,在DRDS层面重新计算出一个全局的count(*)结果返回给用户,这一类的行为就取决于DRDS的函数执行的支持能力.一
25、个例子理解:支持范围:函数解析支持范围: MySQL全函数解析函数执行支持范围: 实现绝大部分的常用函数,总计约280+函数,覆盖了MySQL所有函数的近70%+操作符函数流程控制函数字符串函数数学函数时间函数类型转换函数操作符函数functiondescriptionAND, &Logical AND=Assign a value (as part of a SET statement, or as part of the SET clause in an UPDATE statement)BETWEEN . AND .Check whether a value is within a ra
26、nge of valuesBINARYCast a string to a binary string&Bitwise ANDBitwise inversionBitwise XORDIVInteger division/Division operatorNULL-safe equal to operator=Equal operator=Greater than or equal operatorGreater than operatorIS NOT NULLNOT NULL value testIS NOTTest a value against a booleanIS NULLNULL
27、value testISTest a value against a booleanLeft shift=Less than or equal operatorLess than operatorLIKESimple pattern matching-Minus operator%, MODModulo operatorNOT BETWEEN . AND .Check whether a value is not within a range of values!=, Not equal operatorNOT LIKENegation of simple pattern matchingNO
28、T REGEXPNegation of REGEXPNOT, !Negates valueORLogical OR+Addition operatorREGEXPPattern matching using regular expressionsRight shiftRLIKESynonym for REGEXP*Multiplication operator-Change the sign of the argumentXORLogical XORCoalesceReturn the first non-NULL argumentGREATESTReturn the largest argu
29、mentLEASTReturn the smallest argumentSTRCMPCompare two strings流程控制函数functiondescriptionCASECase operatorIF()If/else constructIFNULL()Null if/else constructNULLIF()Return NULL if expr1 = expr2字符串函数functiondescriptionASCII()Return numeric value of left-most characterBIN()Return a string containing bin
30、ary representation of a numberBIT_LENGTH()Return length of argument in bitsCHAR_LENGTH()Return number of characters in argumentCHAR()Return the character for each integer passedCHARACTER_LENGTH()Synonym for CHAR_LENGTH()CONCAT_WS()Return concatenate with separatorCONCAT()Return concatenated stringEL
31、T()Return string at index numberEXPORT_SET()Return a string such that for every bit set in the value bits, you get an on string and for every unset bit, you get an off stringFIELD()Return the index (position) of the first argument in the subsequent argumentsFIND_IN_SET()Return the index position of
32、the first argument within the second argumentFORMAT()Return a number formatted to specified number of decimal placesHEX()Return a hexadecimal representation of a decimal or string valueINSERT()Insert a substring at the specified position up to the specified number of charactersINSTR()Return the inde
33、x of the first occurrence of substringLCASE()Synonym for LOWER()LEFT()Return the leftmost number of characters as specifiedLENGTH()Return the length of a string in bytesLIKESimple pattern matchingLOCATE()Return the position of the first occurrence of substringLOWER()Return the argument in lowercaseL
34、PAD()Return the string argument, left-padded with the specified stringLTRIM()Remove leading spacesMAKE_SET()Return a set of comma-separated strings that have the corresponding bit in bits setMID()Return a substring starting from the specified positionNOT LIKENegation of simple pattern matchingNOT RE
35、GEXPNegation of REGEXPOCT()Return a string containing octal representation of a numberOCTET_LENGTH()Synonym for LENGTH()ORD()Return character code for leftmost character of the argumentPOSITION()Synonym for LOCATE()QUOTE()Escape the argument for use in an SQL statementREPEAT()Repeat a string the spe
36、cified number of timesREPLACE()Replace occurrences of a specified stringREVERSE()Reverse the characters in a stringRIGHT()Return the specified rightmost number of charactersRPAD()Append string the specified number of timesRTRIM()Remove trailing spacesSPACE()Return a string of the specified number of
37、 spacesSTRCMP()Compare two stringsSUBSTR()Return the substring as specifiedSUBSTRING_INDEX()Return a substring from a string before the specified number of occurrences of the delimiterSUBSTRING()Return the substring as specifiedTRIM()Remove leading and trailing spacesUCASE()Synonym for UPPER()UNHEX(
38、)Return a string containing hex representation of a numberUPPER()Convert to uppercase数学函数functiondescriptionABS()Return the absolute valueACOS()Return the arc cosineASIN()Return the arc sineATAN2(),ATAN()Return the arc tangent of the two argumentsATAN()Return the arc tangentCEIL()Return the smallest
39、 integer value not less than the argumentCEILING()Return the smallest integer value not less than the argumentCONV()Convert numbers between different number basesCOS()Return the cosineCOT()Return the cotangentCRC32()Compute a cyclic redundancy check valueDEGREES()Convert radians to degreesDIVInteger
40、 divisionEXP()Raise to the power ofFLOOR()Return the largest integer value not greater than the argumentLN()Return the natural logarithm of the argumentLOG10()Return the base-10 logarithm of the argumentLOG2()Return the base-2 logarithm of the argumentLOG()Return the natural logarithm of the first a
41、rgumentMOD()Return the remainder%, MODModulo operatorPI()Return the value of piPOW()Return the argument raised to the specified powerPOWER()Return the argument raised to the specified powerRADIANS()Return argument converted to radiansRAND()Return a random floating-point valueROUND()Round the argumen
42、tSIGN()Return the sign of the argumentSIN()Return the sine of the argumentSQRT()Return the square root of the argumentTAN()Return the tangent of the argumentTRUNCATE()Truncate to specified number of decimal places时间函数functiondescriptionADDDATE()Add time values (intervals) to a date valueADDTIME()Add
43、 timeCURDATE()Return the current dateCURRENT_DATE()CURRENT_DATE Synonyms for CURDATE()CURRENT_TIME()CURRENT_TIME Synonyms for CURTIME()CURRENT_TIMESTAMP()CURRENT_TIMESTAMP Synonyms for NOW()CURTIME()Return the current timeDATE_ADD()Add time values (intervals) to a date valueDATE_FORMAT()Format date
44、as specifiedDATE_SUB()Subtract a time value (interval) from a dateDATE()Extract the date part of a date or datetime expressionDATEDIFF()Subtract two datesDAY()Synonym for DAYOFMONTH()DAYNAME()Return the name of the weekdayDAYOFMONTH()Return the day of the month (0-31)DAYOFWEEK()Return the weekday in
45、dex of the argumentDAYOFYEAR()Return the day of the year (1-366)EXTRACT()Extract part of a dateFROM_DAYS()Convert a day number to a dateFROM_UNIXTIME()Format UNIX timestamp as a dateGET_FORMAT()Return a date format stringHOUR()Extract the hourLAST_DAY()Return the last day of the month for the argume
46、ntLOCALTIME()LOCALTIME Synonym for NOW()LOCALTIMESTAMP, LOCALTIMESTAMP()Synonym for NOW()MAKEDATE()Create a date from the year and day of yearMAKETIME()Create time from hour, minute, secondMICROSECOND()Return the microseconds from argumentMINUTE()Return the minute from the argumentMONTH()Return the
47、month from the date passedMONTHNAME()Return the name of the monthNOW()Return the current date and timePERIOD_ADD()Add a period to a year-monthPERIOD_DIFF()Return the number of months between periodsQUARTER()Return the quarter from a date argumentSEC_TO_TIME()Converts seconds to HH:MM:SS formatSECOND
48、()Return the second (0-59)STR_TO_DATE()Convert a string to a dateSUBDATE()Synonym for DATE_SUB() when invoked with three argumentsSUBTIME()Subtract timesSYSDATE()Return the time at which the function executesTIME_FORMAT()Format as timeTIME_TO_SEC()Return the argument converted to secondsTIME()Extrac
49、t the time portion of the expression passedTIMEDIFF()Subtract timeTIMESTAMP()With a single argument, this function returns the date or datetime expression; with two arguments, the sum of the argumentsTIMESTAMPADD()Add an interval to a datetime expressionTIMESTAMPDIFF()Subtract an interval from a dat
50、etime expressionUNIX_TIMESTAMP()Return a UNIX timestampUTC_DATE()Return the current UTC dateUTC_TIME()Return the current UTC timeUTC_TIMESTAMP()Return the current UTC date and timeWEEKDAY()Return the weekday indexWEEKOFYEAR()Return the calendar week of the date (1-53)YEAR()Return the yearfunctiondes
51、cription类型转换函数BINARYCast a string to a binary stringCAST()Cast a value as a certain typeCONVERT()Cast a value as a certain type专享/共享实例,如何选择资源结构如下图所示:专享实例中仅包含您的DRDS DB,所有资源由您独享。共享实例中包含了多个用户的DRDS DB,任意一位用户的DB对其他用户不可见,但实例资源(CPU、内存、网络带宽等)被实例上的所有用户共享。规格专享实例支持 动态变更配置 ,您可以通过在访问高峰来临前升配,在访问低谷期降配,来节约成本。共享实例只有
52、一种规格,同时由于资源结构上的区别,共享实例的性能会低于相同规格的专享实例。可用区专享实例提供若干可用区供您选择,使用相同可用区的DRDS和RDS可以使网络延迟降到最低。共享实例在每个地域仅支持一个可用区,如果与您的RDS位于不同可用区,则会增加13ms的网络延迟。服务架构咨询DRDS 的目标是为用户提供如同单机数据库一样的使用体验,我们提供了许多简单易用的功能和方案,但针对不同业务场景,必然会有所取舍。专享实例和共享实例用户均可以通过工单的方式咨询问题。版本变更DRDS 为专享实例用户提供 跟随升级 服务,在使用过程中可以按照需要随时升级指定实例。共享实例则会不定期进行版本升级,升级前会通过
53、短信/邮件的方式通知到用户。新功能版本变更上的便利性,使得专享实例用户可以优先体验新特性。共享实例用户则可以在统一升级版本后使用新特性。如何选择满足下列任意一条,请选择专享实例:您的系统刚刚从单机数据库迁移到DRDS。您在进行性能测试。您的业务压力大,对数据库性能有要求。您的业务处于高速发展期,可能有各种各样的新问题需要解决。满足下列条件,请选择共享实例:您仅仅希望体验DRDS有哪些功能。您还在进行功能测试。您对性能没有太多要求,希望成本更低。注:共享实例上的DRDS DB可以随时自助迁移到指定专享实例,无需重新导入数据。专享/共享实例对比共享实例专享实例SQL支持范围*完整完整数据水平拆分支
54、持支持读写分离支持支持小表广播支持支持平滑扩容支持支持变更配置不支持支持可用区固定可用区多个可用区可选规格单一规格,性能低于相同规格专享实例规格列表架构改造建议工单方式专属旺旺群,直接交流升级方式不定期统一升级7*24小时按需升级指定实例新功能统一升级后支持优先体验注: 完整SQL支持范围指支持全部DRDS支持的SQL语法。特性描述类型改进Sequence支持全局有序自增,并提供增量、最大值等功能和相应语法的支持,详情请参考Sequence文档新特性函数支持支持to_days函数新特性修复use语句修复use语句含有;解析出错的问题bugfix修复delete语句delete update 含有单个永假式where 条件,条件丢掉bugbugfix升级记录5.1.24-8892015年12月8日优化,支持查看一个表大致的数据量语句如SHOW TABLE STATUS LIKE drds_users,详情参考: /document_detail/drds/user-guide/user_drds_dal.html ;优化,HINT支持过滤条件,如: /*TDDL: socket_timeout=0 and t.id = 210 */ 其中t为SQL中的某个表名,id为表的一个列;优化,SCAN HINT支持EXPLAIN语句,支持使用EXPLAIN查看所有分片上的执行计划,详情
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乙状结肠肿瘤术后管理与康复
- 面肌痉挛病例分享
- 网络文学IP产业链创新与2025年市场价值拓展深度报告
- 数字文化产业商业模式创新与数字文化市场拓展策略研究报告
- 迷路时的健康应对策略
- 2025年土壤改良剂在设施园艺中的应用效果鉴定报告
- 和谐健康快乐生活
- 双减政策对2025年K12辅导行业教育培训机构融资环境的影响报告
- 在线编程教育平台在2025年的技术迭代与产品升级报告
- 幼儿一日活动常规
- 金属标牌的粉末喷涂工艺考核试卷
- 2025年《民航服务心理学》课程标准(含课程思政元素)
- 系统补丁升级管理制度
- 先天性甲状腺功能减退症诊治指南解读
- 事业单位请假新版制度管理统一规定
- 2025年公路养护工人职业技术知识考试题与答案
- 放疗基本知识介绍-1
- 2025小学科学新教材培训学习心得体会
- 阳光房制作安装合同协议书范本8篇
- 2025年供应链管理与优化专业考试试题及答案
- 租借医生执业证合同协议
评论
0/150
提交评论