我有一个旧的服务器和庞大的学生MySQL数据库,只有一个通用的表供所有学生使用:
这个项目有六所学校和800名学生,每天我们有5000分。学生在成绩方面有问题--每次查询他们的分数都需要大约两分钟的时间才能通过我使用表格索引的方式得到结果。添加:当我使用mysql> SELECT * FROM all_students_table where student_id=001时,它需要很长的时间。我想是因为所有学生的信息都在一张大桌子上。我想,
所以我把专栏编了索引。现在,如果我在in子句中传递多个值,选择带有强制索引的所有列(*),则会得到特定的记录,而不是全表扫描。如果使用所选列运行相同的查询,则会看到它执行全表扫描。但是在这里,如果我不使用select all (*),就会有一个完整的表扫描。我无法理解mysql是如何读取查询的。请帮我解决这个问题。表| id | col1 | col2 |
+----+--------+---------+