有表A下:StuNO StuName
-------------------
...
1001 aaaaaaa
1002 bbbbbbb
...
(N条记录!)表B:ID StuNO Score
------------------------
...
10000 1001 90
10001 1001 80
...
(N*M条记录)第二个表的主键是ID..我现用SQL语句:
select * from B where StuNO='1001'
执行时间是相当的吓人...慢...而换成:
select * from B where ID in(10000,10001)则比较快(这只是测试用的..我现在是由StuNO得出表B里所有记录,这条SQL语句没意义)请问如果何解决第一条SQL语句执行慢的问题!!!最好不要改数据库结构(记录超过10万)
-------------------
...
1001 aaaaaaa
1002 bbbbbbb
...
(N条记录!)表B:ID StuNO Score
------------------------
...
10000 1001 90
10001 1001 80
...
(N*M条记录)第二个表的主键是ID..我现用SQL语句:
select * from B where StuNO='1001'
执行时间是相当的吓人...慢...而换成:
select * from B where ID in(10000,10001)则比较快(这只是测试用的..我现在是由StuNO得出表B里所有记录,这条SQL语句没意义)请问如果何解决第一条SQL语句执行慢的问题!!!最好不要改数据库结构(记录超过10万)
在B表的StuNo上建一个索引就行了。CREATE INDEX ix_StuNo ON B(StuNo)
我是楼主..再次说明一下我的问题:
如果何从表B中得出StuNO等于指定值的所有记录???最主要是快速!!!
select * from B where StuNO='1001'这条灰常慢
你的StuNo字段没有索引,速度上当然是索引块了