logo资料库

淘宝MySQL十大经典案例.pdf

第1页 / 共61页
第2页 / 共61页
第3页 / 共61页
第4页 / 共61页
第5页 / 共61页
第6页 / 共61页
第7页 / 共61页
第8页 / 共61页
资料共61页,剩余部分请下载后查看
淘宝MySQL十大经典案例 阿里集团-淘宝网DBA @杨德华Devin 2012-09
个人简介 • 负责淘宝用户中心从IOE迁移到MySQL集群的性能测试,高 可用运维,DB可用率达到100% • 管理数据魔方,SNS,淘宝评价,webww,notify等MySQL集群 • 服务器优化,成本节省,把某个业务线的MySQL机器数量从 100台减少到70台。 • SAS->SSD/FIO的MySQL服务器升级过程 • 负责MySQL5.1.45->5.1.48-> Percona 5.5.18的工作
淘宝线上十大MySQL经典案例 • 数据库设计相关: • (一) InnoDB表如何设计主键索引 • SQL相关: • • • (二) 字符串索引隐式转换 (三) 表数据被莫名清空 (四) InnoDB表更新锁问题 • 客户端相关: • (五) 客户端连接被中断
淘宝线上十大MySQL经典案例 • “灵异事件”相关: • (六)核心数据库被同时关闭 • Slave相关: • • • (七) Slave 事件Loop (八) Slave 更新操作找不到对应记录 (九)备库设置read_only被堵塞 • Swap相关: (十) 数据库服务器Swap •
一 InnoDB表如何设计主键索引 CREATE TABLE `a` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `message_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, `msg` varchar(1024) DEFAULT NULL, `gmt_create` datetime NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`,`message_id`), KEY `idx_gmt_create` (`gmt_create`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk; CREATE TABLE `b` ( `user_id` int(11) NOT NULL, `message_id` int(11) NOT NULL, `msg` varchar(1024) DEFAULT NULL, `gmt_create` datetime NOT NULL, PRIMARY KEY (`user_id`,`message_id`), KEY `idx_gmt_create` (`gmt_create`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
一 InnoDB表如何设计主键索引 CREATE TABLE `a` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `message_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, `msg` varchar(1024) DEFAULT NULL, `gmt_create` datetime NOT NULL, PRIMARY KEY (`id`), KEY `user_id` (`user_id`,`message_id`), KEY `idx_gmt_create` (`gmt_create`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk; CREATE TABLE `b` ( `user_id` int(11) NOT NULL, `message_id` int(11) NOT NULL, `msg` varchar(1024) DEFAULT NULL, `gmt_create` datetime NOT NULL, PRIMARY KEY (`user_id`,`message_id`), KEY `idx_gmt_create` (`gmt_create`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk; 大多数互联网业务(用户,消息),都可以 选择a或者b来满足业务需求, 但a表和b表有何区别?
一 InnoDB表如何设计主键索引 记录 空间 优点 A表 500万 (顺序) 509M 主键ID自增,在写入数据 的时候,Btree分裂成本 低,写性能高 B表 500万 (随机) 361M ? 缺点 ? ?
一 InnoDB表如何设计主键索引 记录 空间 优点 A表 500万 (顺序) 509M 主键ID自增,在写入数据 的时候,Btree分裂成本 低,写性能高 缺点 ? B表 500万 (随机) 361M 1.物理空间相对减少 ? 2.根据user_id查数据,直 接走主键拿到数据,无 需回表
分享到:
收藏