2011年11月23日星期三

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 200,000 400s=>600s 300MB=>600MB 600MB=>1200MB
Memcache 300,000 NA 150MB=>300MB 150MB=>300MB
Fetchurl 50,000=>100,000 NA 100MB=>200MB 100MB=>200MB
Image 5,000 300s 150MB 150MB
Storage 5,000 NA 50MB=>80MB 400MB
Mail 50=>500 NA 20MB 20MB
Cron/offset 50 50s 1MB 1MB
Cron/nooffset 200 30s=>60s 5MB 5MB
TaskQueue 20,000=>40,000 60s=>100s 10MB=>20MB 10MB=>20MB
VerifyCode 100 4s 2MB 2MB
KVDB 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

2 条评论:

  1. 不明白表主键及聚簇索引奖励系数1024倍是什么意思呢?

    回复删除
  2. 表主键及聚簇索引奖励系数1024倍是什么意思呢?

    回复删除