Mysql优化(三)

5.5 设计索引

1)被频繁使用的字段设置索引

     字段被频繁使用在where和order等条件里边,数据表创建完毕,要预估那些字段被经常使用,就给其创建索引

2)执行时间长的sql语句考虑设计索引

    可以利用“慢查询日志”收集这样的sql语句并优化设计索引

3)逻辑非常重要的sql语句考虑设计索引

      例如商城系统里边,会员给自己账户充值,订单购物,进行付款的时候

4)字段内存足够花样画,可以考虑设计索引

      反面教材,性别不能设计索引

5.6 前缀索引

前缀索引:如果一个字段的内容的前边的n位信息已经足够可以标识当前的字段内容,就可以把字段的前n位获得出来并创建索引,通过字段内容前n位创建的索引就称为“前缀索引”;索引是给sql语句做优化,前缀索引是给索引做优化

5.6.1 获得前n位

获得字段的前n位:substring(字段,开始,长度)   mysql函数

去重关键字:distinct

设置前缀索引:alter 表名 add key (字段(长度))


5.6.2 in条件的使用


5.7 了解索引结构

Mysql的数据结构都是B+Tree结构

5.7.1 Myisam索引结构称为“非聚合型”(具有单独的索引文件和数据文件)

索引运行原理:快速定位主键Id(索引文件),获得对应记录物理地址,获得记录信息(数据文件)

每个主键id值都是一个节点,节点本身有指针

最低层的节点称为“叶子节点”,该节点与记录的物理地址直接联系

Myisam其他索引机制与主键索引机制一致,通过索引文件找到对应物理地址,然后再数据文件找到对应记录信息

5.7.2 Innodb索引结构称为“聚合型”(“索引”和“数据”文件在同一个文件里面)

索引运行原理:通过索引结构快速定位id主键对应的“叶子节点”

该节点里面直接与整条记录信息进行对应(而在Myisam里面,叶子节点与物理地址对应),其他索引通过只记录主键id的索引地址,再通过主键id找到整条信息(普通索引关键字---》记录的主键id值---》记录的整条信息)

6. 缓存设置

有的被频繁执行的sql语句,比较消耗时间,消耗系统资源且每次获得数据还不太发生变化,那么就把这个sql语句会的信息缓存起来,供后续执行使用,这样非常节省系统资源

6.1 具体使用

查看缓存


设置缓存


6.2 缓存失效

数据表的数据发生变换或者数据表结构变化,则缓存失效

缓存对sql语句字母大小写敏感,空格等,同样结果的sql语句可能出现多个缓存,造成内存浪费

6.3 不使用缓存


6.4 查看缓存使用情况


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

memory_cood

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值