Mysql Query 如何缩短查询时间

问题描述

有一张分数表 (score),有一张曲库表 (music)。要实现的功能是,通过一条 SQL 语句查询出对应的游戏类型下(game)所有music.id=score.musicid相匹配的所有分数(score)。通过表结构如下:
music
score
sql
这是原先的查询语句。查询速度在1w条1s左右:

SELECT
  music.songid,
  music.chart,
  score.id AS scorekey,
  score.points,
  score.timestamp,
  score.`update`,
  score.lid,
  score.data,
  score.userid,
FROM score
  INNER JOIN music
    ON music.id = score.musicid
WHERE music.game = 'iidx'
AND music.version = 10030

需求

对上述查询语句进行优化,尽可能缩短执行查询语句的时间,数据量千万级

讨论数量: 1

1.把music当作主表,因为条件都是music表里的字段,合理减少主表的数据量再去做join。 2.合理建索引,这个一定程度上也要根据业务

10个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!