mysql常见问题分享 - baidu

原创 2015年11月18日 20:45:05

今天就记录这些, 给大家分享一下

mysql常见问题分享 - baidu

百度数据库-架构

  1. 多点写入 – 队列 会造成数据不一致
  2. 中间层 具有 : 读写分离, 连接池,负载均衡, – 中间层不能有问题
  3. 使用虚ip obproxy
  4. BGW_VIP&PORT + ttm + DBPROXY_PORT - 一组ip 百度的使用的架构

mysql优化 - 对的,错的, 不确定

建议用innodb b+树

索引

  1. 主键 有序 便于查找- b+树存储, 聚簇索引的叶子节点存放
  2. 查找的值相对于原表较少, 建议用索引 eg 1000w 检索1条数据使用索引
  3. 一个表不建议超过5个索引
  4. 通过索引日志, 进行删减索引
  5. mysql只能用一个索引 可以用联合索引
  6. mysql索引的使用取决与b树的结构
  7. 相同的语句执行多次可能会使用索引不一致, - 进行优化

  8. explain调试 支持select 如果使用delete 可以转化为select 因为delete

  9. explain 主要kan key:使用的索引类型, rows扫描的行, Extra
  10. 组合索引 (a,b,c) a,c | b,c不会使用索引 原因在于B树的数据结构特性造成的

mysql使用原则

  1. 数据量, 流量, 复杂度 - 不能同时满足
  2. 量小 没有啥大问题
  3. 数据量大,查询要慎重 - 注意反作弊 ,有好多不可控性

设计技巧和规范-常见问题

  1. 字段类型不匹配
  2. 1条sql和多条sql的性能 - 1条复杂的sql 会产生一些临时表, 还会阻塞其它的 - 主从
  3. auto_commit = 0
  4. ctrl+c 不能中断 mysql请求
  5. int是否够用? – 记录形式的 – 增长量不可控用 bigint
  6. 数据库计数? select count(*)在innodb上表不会存 会造成扫描全表 页面上的 统计不要在数据库上统计
  7. 大结果集 – 可以对id分段-在拼接, 否则会造成网卡堵塞
  8. 数据库中有热数据的概念 是否有用的sql

设计技巧和规范-表设计

  1. 单表不要超过1000w , 超出考虑分表
  2. 可以适量增加冗余减少表关联

设计技巧和规范-增删改查类

  1. 不要在备库中进行 大的统计查询 - 会不精准
  2. 多条的insert拼接成一条提交效率会高
  3. 批量update和delete 可以采用 delete from table where id in (id 100个左右)
  4. 删除数据多, 要命中索引, 增加limit –可以利用主键的自增的特点,
  5. 捕获数据库反馈的错误信息 打印到日志中
  6. 尽量使用cache 数据量小可以用
  7. 避免查询结果超过正常的需求– 要有价值的数据显示出来就可以了
  8. 减少表的关联, 大表/主表
  9. 尽量减少distinct like group by order by ,union
  10. 尽量不用子查询, 子查询 会锁表, 效率低

设计技巧和规范-分库分表

  1. 按行数
  2. 分段取模
  3. 按时间

压测工具

  1. tdpcopy

rd和dba合作的流程

今天非常有幸听了百度db一位同事讲解mysql 受益匪浅
来自资审db高端人才 xxx [这里不方便透露人家的姓名] 具有5年sql经验

资源我已经上传到csdn上了不用积分的, 大家可以参考下

PPT 下载地址

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

mysql常见问题分享-百度

  • 2015年11月18日 21:05
  • 1023KB
  • 下载

mysql-常见问题,索引优化

  • 2017年11月17日 13:51
  • 388KB
  • 下载

python操作mysql方法和常见问题

转自:http://www.cnblogs.com/ma6174/archive/2013/02/21/2920126.html python操作mysql方法和常见问题   ...

MySQL常见问题解决方案

  • 2014年03月10日 20:50
  • 736KB
  • 下载

MySQL 安装常见问题

  • 2011年07月22日 09:37
  • 87KB
  • 下载

【面试】【MySQL常见问题总结】【03】

061 如何删除表?答案:运行命令 drop table table_name; 062 创建索引对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,...

Bugzilla+Perl+Mysql on IIS 常见问题

  • 2010年09月02日 14:07
  • 31KB
  • 下载

MYSQL常见问题总结

  • 2008年11月12日 10:09
  • 25KB
  • 下载

【面试】【MySQL常见问题总结】【04】

数据库死锁概念  多数情况下,可以认为如果一个资源被锁定,它总会在以后某个时间被释放。而死锁发生在当多个进程访问同一数据库时,其中每个进程拥有的锁都是其他进程所需的,由此造成每个进程都无法继续下去。简...

MySQL数据库常见问题汇总

  • 2009年10月15日 19:35
  • 39KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql常见问题分享 - baidu
举报原因:
原因补充:

(最多只允许输入30个字)