面试必问mysql数据库优化有哪些?

1.sql语句的优化,在查询方面,查询中含有表达式方面

2.视图方面:例如查询和添加修改都相对比较多,做视图的目的是为了减少添加之后频繁查询数据库,如果数据库关联的表比较多,这时会给数据造成查询压力。

3.缓存方面:常用的缓存数据库(NoSQL)非关系型数据库,第一次查询数据库,并将查询的结果写入redis缓存数据库。可以达到减轻查询数据库的压力

4.读写分离:用mysql主从复制实现读写分离,住数据库和从数据的数据结构及其的数据也是一致的,这时可用主数据库作为写数据库,用从数据库 作为写数据库。

5.索引方面:索引分为普通索引 ,主键索引,唯一索引,组合索引,全文索引。
以下是索引的简介

普通索引
index ---- 普通索引,数据可以重复,没有任何限制。
唯一索引
unique ---- 唯一索引,要求索引列的值必须唯一,但允许有空值;如果是组合索引,那么列值的组合必须唯一。
主键索引
primary key ---- 主键索引,是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值,一般是在创建表的同时创建主键索引。
组合索引
组合索引 ---- 在多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。
全文索引
fulltext ---- 全文索引,是对于大表的文本域:char,varchar,text列才能创建全文索引,主要用于查找文本中的关键字,并不是直接与索引中的值进行比较。fulltext更像是一个搜索引擎,配合match against操作使用,而不是一般的where语句加like。
  注:全文索引目前只有MyISAM存储引擎支持全文索引,InnoDB引擎5.6以下版本还不支持全文索引
  所有存储引擎对每个表至少支持16个索引,总索引长度至少为256字节,索引有两种存储类型,包括B型树索引和哈希索引。
  索引可以提高查询的速度,但是创建和维护索引需要耗费时间,同时也会影响插入的速度,如果需要插入大量的数据时,最好是先删除索引,插入数据后再建立索引。
索引生效条件
  假设index(a,b,c)
• 最左前缀匹配:模糊查询时,使用%匹配时:’a%‘会使用索引,’%a‘不会使用索引
• 条件中有or,索引不会生效
• a and c,a生效,c不生效
• b and c,都不生效
• a and b > 5 and c,a和b生效,c不生效。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

唂雨云

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

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

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

打赏作者

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

抵扣说明:

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

余额充值