常见的是联合索引,而不是简单的单索引
    数据页概念
    数据页分裂原因
    https://blog.51cto.com/u_15015155/2615476

    知识:
    btree索引、hash索引、btree索引的左前缀规则,根据这些规则建立起合理的表结构和合理的索引、接下来就是写sql语句,sql语句效率也要高、sql语句时间花在哪了呢?
    一、sql语句时间花在哪了呢?
    1.等待时间和执行时间
    二、执行时间花在哪了呢?
    1.查找—按索引查找,慢则全表扫描
    2.取出—查找到行后,去取出数据,进行io操作。
    三、如何查的快?
    1.查询的快—联合索引
    2.取的快—索引覆盖(尽量不要回表)
    3.传输的少—更少的行和列(这就是为什么要带条件去查找的原因,减少读盘io操作)
    四、sql优化思路
    不查—少查—高效的查
    不查:通过业务逻辑来计算
    少查: 带条件,分页
    高效的查:走覆盖索引
    五、用explain定量分析查的多少行,和是否沿着索引走?

    in() 全表扫描外表
    优化in,通过表连接走索引来优化

    EXPLAIN
    SELECT *
    FROM edu_video ev INNER JOIN (SELECT id FROM edu_course WHERE id=’18’) tmp
    ON ev.course_id=tmp.id
    image.png
    SELECT *
    FROM edu_video ev WHERE course_id IN(SELECT id FROM edu_course WHERE id=’18’)
    image.png