mysql优化总结

1、数据库设计
满足三大范式(第一范式:列的原子性 第二范式:确保表中的每列都和主键相关,
一个表只能保存一类数据,不能放多类的数据,第三范式:确保同一行数据不存在传递关系)
2、数据库建表
(1)存储引擎选择;需要支持事务、外键、更新和查询都很频繁的使用innodb,
如果要使用全文索引、数据更新少、查询多采用myisam
(2)schema字段类型选取,必须选择合适的字段类型,比如正整数使用unsinged int,定长字符串采用char,变长使用varchar;
尽量少用text、blob等大字段类型,如果有尽量分成多表存储;
(3)建议字段定义为not null,设置默认值。null值占用索引空间,有null值的列导致索引的统计信息、索引以及比较运算更加负责
(4)每个字段写清楚注释及定义好表所用的编码格式
3、索引
(1)按照业务需求建索引,多余无用的索引只能增加系统的额外开销
(2)联合索引一般选择选择度高的列放在最前面
(3)长字段索引使用前缀索引,减少索引占用空间
(4)注意覆盖索引的使用,尽量不要建立冗余的索引
(5)控制索引的个数和联合索引的字段个数
4、sql语句编写
(1)where 字段筛选顺序和建立联合索引字段顺序一致
(2)sql筛选条件等号左边尽量不要使用表达式、函数,导致不能使用索引
(3)like 尽量使用前缀匹配
(4)不要使用select *,按照自己的需要取字段,很多时候字段取得越少使用覆盖索引的机会就越大
(5)写完sql使用explain查询一下执行计划,尽量type优于range
(6)使用limit限制取数据条数
(7)非等值条件后面不能使用索引,应该放在最后
(8)能批量查询的不要循环查询、严格控制每个表的数据量
5、业务
分库分表
横向和纵向切分
redis缓存
统计信息用临时表
6、部署与数据备份同步
主从部署
mysqldump导出备份数据

 

mysql优化总结:https://www.toutiao.com/i6602470523379122702/

mysql面试问题:https://www.toutiao.com/i6605057905592893965/

                          https://www.toutiao.com/i6605397743085027848/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值