关于MySQL性能优化方案,掌握这一篇就够了!

目录

前言

一、设置索引

1、索引的优缺点:

2、给表列创建索引   

3、查看索引

4、删除索引:

5、索引原理:

二、分类讨论

三、针对偶尔很慢的情况

1、 数据库在刷新脏页(flush)

2. 拿不到锁我能怎么办

四、针对一直都这么慢的情况

1、没用到索引

2.、数据库自己选错索引了

五、总结


前言

MySQL是目前应用非常广泛的关系型数据库管理系统,它在实际应用中的性能表现往往是决定系统效率和用户使用体验的重要因素。因此,MySQL性能优化方案非常重要。MySQL性能优化方案需要从多个方面入手,包括硬件性能、数据库设计、SQL语句优化等。需要系统性的分析MySQL性能瓶颈及优化方案后,才能使其在高并发场景或大数据量下有更好的性能表现。在实际应用中,常见的MySQL性能优化方案包括使用索引、优化查询语句、优化数据库结构、调整参数配置、分库分表、使用缓存等措施。

一、设置索引

索引是一种可以让SELECT语句提高效率的数据结构,可以起到快速定位的作用。

1、索引的优缺点:

        优点:某些情况下使用select语句大幅度提高效率,合适的索引可以优化MySQL服务器的查询性能,从而起到优化MySQL的作用。

        缺点:表行数据的变化(index、update、delect),简历在表列上的索引也会自动维护,一定程度上会使DML操作变慢。索引还会占用磁盘额外的存储空间。

2、给表列创建索引   

        建表时创建索引:

create table t(id int,name varchar(20),index idx_name (name));

        给表追加索引:

alter table t add unique index idx_id(id);

        给表的多列上追加索引

alter table t add index idx_id_name(id,name);

或者

create index idx_id_name on t(id,name);

3、查看索引

    使用show语句查看t表上的索引:

show index from t;

show keys from t;–mysql中索引也被称作keys

    使用show create table语句查看索引:

show create table t\G 

4、删除索引:

    使用alter table命令删除索引:

     alter table 表 drop index 索引名

    使用drop index命令删除索引:

     drop index 索引名 on 表

5、索引原理:

    例如一个学生信息表,我们设置学号(stu_id)为索引:

    索引页之间存在一定的关联关系,一般为树形结构;分为根节点、分支节点、和叶子节点

    根节点页中存放分段stu_id的起始值,以及值所对应的分支索引页号

    分支索引页中存放分段stu_id的起始值,以及值所对应的叶子索引页号

    叶子索引页中存放排序后的stu_id值,该值所对应的表页号, 下一个叶子索引页的页号

stu_id建立索引后,执行select name,sex,height from stu where stu_id=13查询过程如下:

    ① 索引页存在关联关系,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值