Mysql高级性能优化之索引相关的面试题(十一)

索引相关的面试题

说出以下语法使用索引的情况
假设建立复合索引(a、b、c),说下以下索引的使用情况:

sql条件语句索引的使用情况
where a=4a
where a=4 and b=6ab
where a=4 and c=5 and b=6abc
where b=4 or b=5
where a=4 and c=6a
where a=4 and b>5 and c=6ab
where a=4 and b like ‘test%’ and c=4ab(test%相当于范围)
where a=4 order by b,ca,不会有filesort
where b=5 order by a无,会有filesort
where b=5 order by c无,会有filesort
where a=5 group by c,ba,有useing temporary

大批量数据时分页操作如何优化
1、批量插入数据 :
①建立表
②随机生成字符串
③批量插入数据

2、传统分析查询:
使用limit随着offset增大,查询速度会越来越慢,会把前面的数据都取出来,找到相应的位置
在这里插入图片描述

3、优化后分页查询:
①使用子查询优化分页
在这里插入图片描述
在这里插入图片描述
②使用id限定优化
记录上一页最大的id号,使用范围查询;
限制是只能使用明确知道id的情况,不过一般建立表的时候,都会添加基本的id字段,这为分页带来了便利;
在这里插入图片描述
SELECT * FROM testemloyee WHERE id BETWEEN 990000 AND 990010 LIMIT 10;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些常见的 MySQL 性能优化面试题: 1. 什么是索引MySQL 中有哪些类型的索引索引是一种数据结构,用于加快数据库中数据的查找速度。MySQL 中可以使用多种类型的索引,包括 B-Tree 索引、哈希索引、全文索引等。 2. 如何优化查询语句的性能? 可以通过以下几种方式优化查询语句的性能: - 确保表结构设计合理,尽可能避免全表扫描。 - 使用索引,但不要过度使用,以免降低写入性能。 - 避免使用 SELECT *,只查询必要的列。 - 尽可能使用 JOIN 代替子查询。 - 避免在 WHERE 子句中使用函数,以免影响索引使用。 3. MySQL 中如何优化大表查询的性能? 可以通过以下几种方式优化大表查询的性能: - 使用分页查询,每次只查询部分数据。 - 使用索引,但不要过度使用,以免降低写入性能。 - 对查询结果进行缓存,避免重复查询。 - 对查询语句进行优化,避免全表扫描和排序操作。 4. 如何优化 MySQL 的写入性能? 可以通过以下几种方式优化 MySQL 的写入性能: - 确保表结构设计合理,尽可能避免全表扫描。 - 批量插入数据,而不是逐条插入。 - 对于需要频繁更新的表,可以考虑使用内存表。 - 使用延迟写入机制,将写入操作缓存到内存中,定期刷入磁盘。 5. 如何优化 MySQL 的内存使用? 可以通过以下几种方式优化 MySQL 的内存使用: - 合理设置缓冲池大小,包括查询缓存和 InnoDB 缓存池。 - 优化查询语句,避免不必要的排序和连接操作。 - 合理使用索引,以提高查询效率。 - 定期清理无用的数据,避免内存占用过高。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值