MySQL数据库层的优化思路

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_34828933/article/details/79520520

下面为大家梳理一下mysql数据库层的优化思路

1、数据表数据类型的优化

  • 注意tinyint,samllint,bigint的区别。int(10)和int(11)的区别在于显示的宽度上,存储能力是一样的
  • char和varchar的区别。已知大约长度值,一般用var效率更高。

2、索引优化

  • 索引并非越多越好,合适的字段上创建合适的作引,索引会影响增删改操作,并且占用磁盘空间,更新数据也要维护索引
  • 符合索引的前缀原则要明确,索引失效的情况要清楚(例如,abc三个索引,只有a可以,只有b可以,只有c可以,abc可以,但是bc索引失效,ac索引失效)
  • like查询时%的问题,like 'aa%'索引生效,like '%aa%'索引无效
  • 全表扫描优化
  • or条件索引失效的情况(or前有索引,后无索引,索引失效,or前后字段要分别建索引)
  • 字符串类型索引失效问题(存的var,查询时要用引号,否则索引失效)
  • 枚举类型数据要加'',否则索引失效

3、sql语句的优化

  • explain 做sql语句分析

4、存储引擎的优化

  • InnoDB和MYISAM的区别
  • InnoDB支持事务,行级锁,对高并发处理较好,具有崩溃修复更能,但是行锁开销较大
  • MYISAM不支持事务,表锁,易产生碎片,需要定期清理 命令是optimize table tablename1,tablename2

5、数据表结构的优化

6、数据库服务器架构的优化

猜你喜欢

转载自blog.csdn.net/sinat_34828933/article/details/79520520