上云无忧 > 文档中心 > 百度智能云云数据库RDS代理实例使用限制
云数据库 RDS
百度智能云云数据库RDS代理实例使用限制

文档简介:
读写分离原则: 事务、写请求或同一个session写请求之后一段时间(默认200ms)内的读,会发往主库。 读写分离不保证非事务读的一致性,业务上有一致性需求的查询,请封装到事务。 对业务要求: 业务有连接探活或超时机制。超时时间为:前端超时时间 < 代理超时时间 < MySQL超时时间。 业务端有重试机制。 for MySQL 版 for SQL Server 版 for PostgreSQL 版
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

读写分离原则

  • 事务、写请求或同一个session写请求之后一段时间(默认200ms)内的读,会发往主库
  • 读写分离不保证非事务读的一致性,业务上有一致性需求的查询,请封装到事务

对业务要求

  • 业务有连接探活或超时机制。超时时间为:前端超时时间 < 代理超时时间 < MySQL超时时间
  • 业务端有重试机制

暂不支持功能

  • 不支持通过代理实例调用用户自定义函数
  • 不支持old_password=ON
  • 不要用select执行带有些操作的SQL,因为会被发往从库执行
  • set autocommit语句只支持set autocommit=1/0,不支持set autocommit=on/off

不推荐使用的功能

  • 如下命令的执行结果具有随机性,会根据执行时所连接的实例返回响应结果:show processlist、show master status、show slave status
  • 不推荐客户端使用连接池功能,因为代理实例已经提供了连接池
  • 不推荐长连接中使用prepare,因为cpu使用率偏高,会有性能下降
  • 不保证上下文相关函数的正确性,这些函数包括row_count、last_insert_id等。这些函数建议用编程语言的客户端API代替,如C和PHP的API中mysql_affect_rows函数可以代替row_count,mysql_insert_id函数可以代替last_insert_id

其他

  • 针对found_rows函数,目前dbproxy支持增加SQL_CALC_FOUND_ROWS标识的方式 SELECT SQL_CALC_FOUND_ROWS … from …,并且found_rows只有紧跟SELECT SQL_CALC_FOUND_ROWS … from …后发送有效。
  • 字段名/字段值可能被识别为for update/lock in share mode关键词,而发往主库
  • 字段名/字段值含有分号会被作为multiquery发往主库处理
  • for update/lock in share mode,严格匹配关键词,多余空格可能会导致无效而发往从库
相似文档
  • 在生产环境中,经常会遇到这样的情况:客户在主实例对一个没有索引的表执行大批量数据的update或delete操作。如果主从采用ROW模式复制,主库只需要全表扫描一次,从库却需要对主库影响的每一行数据都做一次全表扫描,往往会造成从库非常大的同步延迟,这种情况一般不能被业务所容忍。 for MySQL 版
  • DBA在运维数据库的过程中,常常会有这样的烦恼:InnoDB存储引擎的共享表空间文件ibdata1逐步增大,更严重甚至将磁盘打满影响服务。 此篇文章主要围绕两个问题进行分析: ibdata1文件为什么会增大? ibdata1文件在同集群的主从库间并不一定同步增长? for MySQL 版
  • MySQL在5.7版本中提供了Generated Column的功能,它可以通过函数计算获得新的一列数据,我们可以通过在虚拟列加索引的方式提高查询效率、分区表可使用虚拟列进行分区等。 for MySQL 版
  • MySQL从5.7.1版本开始,临时表的存放由之前的临时文件可替换成采用独立的临时表空间形式,命名为ibtmp1;由innodb_temp_data_file_path参数可配置临时表空间相关参数。MySQL将临时表空间从系统表空间 (system tablespace) 文件中独立出来,该共享临时表空间用于存储非压缩 InnoDB 临时表 (non-compressed InnoDB temporary tables)、关系对象 (related objects)、回滚段 (rollback segment) 等数据。 for MySQL 版
  • MySQL的权限REFERENCES是控制是否允许给表建立外键关联关系的权限。 问题现象: 从MySQL5.6版本的数据库中导出的含外键的表,然后再导入到MySQL5.7版本的数据库中,导入过程中产生如下报错: ERROR 1142 (42000): REFERENCES command denied to user 'user'@'host' for table 'tb_01'; for MySQL 版
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部