每一秒钟的时间都值得铭记

0%

面试系列05——我的SQL为什么这么慢?

SQL执行速度慢的原因分析?

SQL执行偶尔很慢

  • 数据库在刷新脏页。
  • 数据库无法获取锁。

SQL执行一直很慢

  • 没有给字段设置索引或者字段设置了索引但是SQL没有用上。
  • IO吞吐量小,形成了瓶颈效应。
  • 数据库内存不足。
  • SQL查询的数据量太大,或者返回了不必要的行和列。
  • 如果SQL和数据库不再同一台服务器,那么还有可能是网络速度慢。

优化SQL执行速度慢的方法?

  • 根据查询条件,给数据库表建立索引,优化索引,优化访问方式。
  • 横向、纵向拆分大表,减小表的尺寸。
  • 优化SQL,多次查询少量数据,少使用*、distinct等关键字。
  • 升级数据库服务器硬件,扩大内存。
  • 提高网速。

怎么判断一条SQL是否是通过索引查询到的数据?

  • 在select语句前加上explain就可以了。
  • 查找出来的结果中有一个key属性,key属性是用来显示使用的索引的,如果key属性为null,那就说明没有使用索引。
    1
    2
    create index nameindex on tb_user(name(10));	#在tb_user表以name字段创建一个名为nameindex的索引
    explain select * from tb_user where name = '鞠婧祎'; #通过关键字explain查询
    在这里插入图片描述

    数据库的索引

数据库索引的创建方式:

1
2
CREATE INDEX [索引名] ON [表名]([列名](长度)); 
create index nameindex on tb_user(name(10));

索引的数据结构

  • 索引的底层是一个平衡树(非二叉树)。

索引的优点:

  • 提高SQL的查询速度。

索引的缺点:

  • 虽然索引可以提高SQL的查询速度,但是会降低SQL语句insert、update、delete语句的速度,因为这些语句不仅要操作数据表数据,还要维护索引数据。
  • 索引会占用磁盘空间。
坚持原创技术分享,您的支持将鼓励我继续创作!
-------------这是我的底线^_^-------------