高频面试八股文用法篇(二十一)数据库(索引、文本搜索、子查询优化)
目录
问题1:SQL优化手段有哪些?
问题2: 子查询对性能的影响
问题3: MySQL的GROUP BY和HAVING子句的区别
问题4:什么是MySQL的二进制日志(binlog)?它有什么作用?
问题5: 什么是索引覆盖扫描
问题6: 如何提高文本搜索效率或什么是全文索引
问题7: ACID属性
问题8: 如何优化子查询
问题9: 子查询和连接的区别
问题10:count(1)、count(*)以及count(列)的区别
问题11: delete 和 TRUNCATE 区别
问题1:SQL优化手段有哪些?
- 慢查询定位:通过EXPLAIN分析执行计划,优化索引或查询语句.
EXPLAIN命令用于分析MySQL如何执行一个查询。它显示了查询的执行计划,包括用到的索引、数据读取方式、联接顺序等。这对于优化查询性能非常有用 - 分页优化:避免超大分页(如LIMIT 50000,200),改用子查询
- 索引失效场景:在WHERE子句中对字段使用函数、OR连接非索引列,避免在WHERE子句中使用函数
- 避免全表扫描
- 索引维护成本:虽然索引覆盖扫描可以提升性能,但也会增加写操作的开销(因为每次插入、更新或删除数据时都需要更新索引
