mysql优化的八个方面

八个方面优化数据库:
一.对于数据库的创建:
选用最合适的字段,比如年龄用unsigned tinyint就可以,没必要用Integer,因为数据库最终是要写到磁盘上,所以字段的长度也会影响磁盘的I/O操作,还有数据库的引擎也要选用最合适的,比如有InnoDB、Memory等,合理使用可以提升数据库的性能。
二.对于SQL语句
最重要的是要使用索引一些常见的优化语句有
1.只查询需要的字段,不使用“*”关键字
2.尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引
3.应尽量避免在 where 子句中使用以下操作,否则引擎将放弃使用索引而进行全表扫描。尽量避免在 where 子句中使用!=或<>操作符、对字段进行 null 值判断、使用 or 来连接条件模糊查询、in 和 not in 也要慎用、表达式操作、函数操作
三.对于大数据表
当一个表的数据量很大时,查询就变得很慢,所以减少表的记录数量,是优化的一种方式,这种方式就是将一张表的数据拆分成多张表,这样每张表的数据就减少了,查询速度就相对来说快了一些
四.对于大事务
针对运行时间较长、操作的数据比较多的事务这类事务风险大:因为它锁定的数据多,更容易造成大量的阻塞和锁超时,回滚时所需时间长,执行时间长容易造成主从延迟。针对这类事务,我们可以避免让它一次处理太多的数据,移除它不必要的select操作
五.对于数据库的默认参数配置
mysql是一个高度定制化的数据库系统,提供了很多配置参数(如最大连接数、数据库占用的内存等)。这些参数都有默认值,一般默认值都不是最佳的配置,我们需要根据应用程序的特性和硬件的情况,对mysql的配置进行调整。例如最大连接数默认为100,如果我们不修改,即使SQL优化的再好,硬件设施再好,请求超过100时,都需要等待,这就是配置不合理导致的MYSQL不能发挥最大性能。
六.对于MYSQL服务器
一台MYSQL服务器同一时间点支持的并发数是有限制的,当大量并发时(例如秒杀活动),一台数据库服务器是处理不过来的,所以增加MYSQL服务器的数量也是很重要的优化方案通过使用MYSQL主从复制,增删改走Master主服务器,查询走Slaver从服务器,这样就减少了只有一台服务器的压力
七.对于数据库连接
减少数据库的连接,也是一种优化手段,有些查询是不用访问数据库的,可以通过缓存服务器,例如Redis、memchache等增加缓存,减少数据库的连接。
八.对于服务器硬件
当所有优化方法都使用了,性能任需优化,那么只有升级MYSQL服务器端硬件,更快的磁盘IO设备,更大的内存,更强的CPU,更大的网卡流量等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值