Sina App Engine(SAE)中的Mysql服务限制说明

Mysql服务概要

SAE平台为每个App支持几乎所有MySQL的特性。目前支持MyISAM引擎,暂不支持InnoDB。需要注意的是SAE的数据库需要显式开启或者禁用。您还可以通过phpmyadmin来创建数据库和数据表。SAE的PHP环境提供了标准的MYSQL,MYSQLI和PDO模块(基于MySQLnd),您可以直接使用这三个模块来操作您的数据库, 您可以使用预定义常量来连接数据库,我们不排除未来可能调整数据库端口,使用预定义常量能够避免这样的问题。当然SAE也提供了SaeMysql类,我们也推荐您使用这个类来操作MySQL资源。

服务限制

限制 相关错误信息 数值
单表的最大行数 Table too many rows 10 000 000 行
库的最大表数量 Too many tables 512个
不支持的存储引擎类型 Not support table type memory temporary
最大外排序的行数 Filesort on too many rows 65536 行
最大无索引的操作行数 100 000 行
查询的最大操作行数 Select on too many rows 1 000 000 行
更新的最大操作行数 Update on too many rows 1 000 000 行
删除的最大操作行数 Delete on too many rows 1 000 000 行
创建索引时允许的表的最大行数 Create index on big table 500 000 行
修改表结构时允许的表的最大行数 Alter table on big table 500 000 行
SQL并发执行时间和(读库) Operations take too much time cost 500 000 毫秒
SQL并发执行时间和(写库) Operations take too much time cost 200 000 毫秒
警报阈值百分比 80%
表主键及聚簇索引奖励系数 1024 倍

MySQL慢查询配额

SQL执行时间超过1秒,即为慢查询,其分钟配额为 条目数 10 累计执行时间 30秒 扫描行 1,000,000

分钟配额 运行在SAE上的应用(App)将会消耗平台资源,为保证各App不互相影响,我们引入了分钟配额的概念,即:在每分钟内每个应用的各个服务所消耗的 资源的速度。比如,当平台中的某个应用的MySQLl服务一分钟内累计请求数达到20万,或者流出宽带超过600M,或者累计CPU执行时间超过400s,我们将会立即禁掉该应用的MySQL服务,禁用五分钟后,恢复会自动恢复,避免影响到SAE平台的稳定性。服务因为超过“分钟配额”而被禁用时,会在“服务状态”看到该服务被禁用的原因。

注意:表中红色配额值是自2011-11-3号,即SAE两周年起开始执行的新配额值,旧配额值将不再采用。

服务 请求数 cpu时间 流入流量 流出流量
HTTP 200,000=>500,000 300s=>600s 300MB=>1500MB 300MB=>1500MB
HTTPS 50,000=>1,000,000 50s=>100s 10MB=>100MB 10MB=>100MB
[MySQL](/?m=devcenter&catId=192) 200,000 400s=>600s 300MB=>600MB 600MB=>1200MB
[Memcache](/?m=devcenter&catId=201) 300,000 NA 150MB=>300MB 150MB=>300MB
[Fetchurl](/?m=devcenter&catId=197) 50,000=>100,000 NA 100MB=>200MB 100MB=>200MB
[Image](/?m=devcenter&catId=198) 5,000 300s 150MB 150MB
[Storage](/?m=devcenter&catId=204) 5,000 NA 50MB=>80MB 400MB
[Mail](/?m=devcenter&catId=200) 50=>500 NA 20MB 20MB
Cron/offset 50 50s 1MB 1MB
Cron/nooffset 200 30s=>60s 5MB 5MB
[TaskQueue](/?m=devcenter&catId=205) 20,000=>40,000 60s=>100s 10MB=>20MB 10MB=>20MB
VerifyCode 100 4s 2MB 2MB
[KVDB](/?m=devcenter&catId=199) 150,000=>300,000 NA 150MB=>300MB 150MB=>300MB

容量配额

容量配额是针对MySQL\Storage\MemCache设置的,是指用户能够使用的磁盘或内存的最大限制(见下表),其中Memcache的最大容量配额是用户自己在初始化Memcache时设置的,可设置的范围是1M~256M。

服务 配额 MySQL 5G Storage 10G* KVDB 100G *每个App允许建立5个Storage domain 每个domain为2G

THE END