MySQL
MySQL知识点
1、B树和B+树的区别?为什么MySQL使用B+树?
a. 对于B树:
- 节点是有序的
- 每个节点存储的都是键值
对于B+树
- 节点有序
- 只有叶子节点存值(减少磁盘IO次数)
- 叶子节点间有指针(范围查询)
2、SQL如何优化
-
合适的索引设计: 通过创建适当的索引,可以大大加快查询速度。索引可以在查询中快速定位所需的行,而不必扫描整个表。
-
避免使用通配符查询: 尽量避免使用通配符(如%)作为查询条件的开头,因为这样会导致全表扫描。
-
避免使用SELECT * 语句: 明确列出需要查询的字段,而不是使用通配符查询所有列。这可以减少从数据库检索的数据量,提升查询速度。
-
避免多次重复查询相同的数据: 可以考虑使用缓存或者将结果存储在应用程序中,以避免重复查询。
-
合理使用JOIN操作: 选择合适的JOIN类型(如INNER JOIN、LEFT JOIN等)以及合适的连接条件,避免产生不必要的笛卡尔积。
-
尽量避免在查询中使用函数: 函数的使用会导致数据库无法使用索引,因此尽量避免在WHERE条件或者JOIN条件中使用函数。
-
定期清理无用的数据: 删除或者归档不再需要的数据,可以减小表的大小,提升查询速度。
3、如何评估SQL的性能
-
使用性能分析工具: 大多数数据库系统提供了性能分析工具,可以用于监视查询的执行计划、执行时间等信息。
-
查看执行计划: 可以使用EXPLAIN或者EXPLAIN ANALYZE等命令来查看SQL查询的执行计划,以了解数据库是如何执行查询的
-
监控数据库负载: 使用监控工具来跟踪数据库的负载情况,包括CPU使用率、内存使用、磁盘IO等,以及查询的响应时间。
-
查看慢查询日志: 配置数据库以记录执行时间超过一定阈值的查询,以便识别潜在的性能问题。