MySQL数据库优化的方法

数据库的操作有很多,如果某些操作不当虽然不会出现错误,但是会导致数据库性能下降,随着MySQL数据库的使用,SQL执行速度变慢,原因可能如下

  1. 硬件问题,如内存不足,网络速度慢等。
  2. 一个数据库的表过多,一张表的数据过多。
  3. 大数据的查找没有建立索引或者索引失效。
  4. 服务器的参数设置不当。

一、优化查询语句SQL

我们可以通过MySQL慢查询日志,查看占用时间最长的SQL语句,可以对其进行优化。

(一)查询语句时使用LIMIT 1
  • 如果我们知道数据库的条数,知道最后查询结果只有一条时,使用limit 1,那么数据库查询到一条语句后,会立即停止搜索,让性能提升。
(二)避免全表查询
  • 查询时尽量不适应select* 查找全表所有字段的信息,这样查询,有很多字段都是不需要的字段,故这样的查询给MySQL带来了不必要的负担,查询速度变慢。
(三)使用连接查询代替子查询
  • 子查询需要将多个逻辑不断嵌套,虽然可以避免死锁,但是实现逻辑难,效率低。连接查询速度更快,独立处理单个表的逻辑,将其连接,实现简单。
(四) 尽量少使用通配符和like
  • 在搜索字符型字段时,我们会用到通配符模糊查询,这个做法虽然简单,但是耗费系统性能。
(五) 在建立索引列上不要运算、where子句进行函数操作
  • 都会导致索引失效。

二、优化表的设计

1、为每一张表设置一个主键
  • 最好将int类型的字段设为主键,在数据量庞大时可以建立索引,进行查找;
  • 最好不要使用varchar当主键,会让性能下降
2、为常用搜索字段建立索引
  • 为频繁查询搜索的字段建立索引,让查询性能变为logn,速度大大提高。
3、尽可能的对字段约束not null
  • 除非必须将其设为NULL值,其他情况将字段保持not null,因为索引不包含null值。
4、使用varchar代替char
  • 节省存储空间,提高效率。

三、使用缓存

  • 给数据库增加缓存系统,将查找效率高的数据放到缓存中,可以减少数据库负载压力,提高性能

四、选择正确的存储引擎

  1. MyISAM 适合大量查询的应用,不适合大量的写操作;因为它使用表锁,并发性低,所以修改时速度降低。
  2. InnoDB 适合大量的修改操作,因为加的是行锁,并发性高;支持事务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值