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 下载地址

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

Hexo+Github搭建个人博客(三)——百度分享集成

title picture   在上一篇博客Hexo+Github搭建个人博客(二)——配置&主题中我还留下了一个有关百度分享的东西没有说明。我之前也说这是我在搭建博客中遇到的最大的坑(没有之一)。在...
  • cl534854121
  • cl534854121
  • 2017年07月26日 10:17
  • 822

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

001 数据库应用系统设计1.规划    2.需求分析    3.概念模型设计    4. 逻辑设计    5.物理设计    6.程序编制及调试    7.运行及维护。 002 创建数据库CREAT...
  • DERRANTCM
  • DERRANTCM
  • 2016年05月29日 21:09
  • 1705

MySQL 面试中的问题汇总

case when使用;Mysql中sql模式;datediff;char与varchar区别;数据复制步骤;索引类型、聚簇索引、索引与锁;阐述isnull、ifnull、nullIf;MyISAM与...
  • hsd2012
  • hsd2012
  • 2016年05月08日 16:09
  • 2044

Android微信SDK分享需要注意的问题

下边是摘抄的大牛的文章~ 1.运行程序,请记住此时你编译运行的时候,用的是android默认的debug.keystore签名的。 2.其中有一步是要用获取你手机中安装的第三方应用的签名信...
  • u012123268
  • u012123268
  • 2015年02月11日 14:42
  • 645

wordpress让百度分享支持https

原理很简单,就是将百度分享的代码从百度的服务器本地化。1、针对begin主题我们开启百度分享的方法是依次打开【外观】–》【主题选项】–》【辅助功能】,往下面翻,可以看到有一个启用百度分享的选项,勾上。...
  • LIU_YANZHAO
  • LIU_YANZHAO
  • 2017年05月25日 19:14
  • 890

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

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

【MySQL】常见错误与常用命令的集锦

【背景介绍】     在使用SQL Server数据库期间,想必大家一定都有过解决各种问题的经历了,很多时候,都会在大家的博客中看到问题与解决方案。现在开发使用的是MySQL数据库,现在来看,发现自己...
  • u013034223
  • u013034223
  • 2016年03月28日 09:50
  • 1512

mysql使用问题汇总--持续更新

导入csv数据到database(Windows版命令行导入): 1.配置文件添加 secure_file_priv = C:/Users/XXX/Desktop(路径,我填的是桌面的路径) 2....
  • pureblue2008
  • pureblue2008
  • 2018年02月02日 14:28
  • 8

mysql的常见面试问题

1、如何登陆mysql数据库 MySQL -u username -p 2、如何开启/关闭mysql服务 service mysql start/stop 3、查看mysql的状态 servic...
  • jia28970475
  • jia28970475
  • 2016年10月07日 11:54
  • 849

Mysql实践(二)一些常见问题处理

Mysql的一些常见问题处理
  • csolo
  • csolo
  • 2016年09月20日 10:54
  • 633
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql常见问题分享 - baidu
举报原因:
原因补充:

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