我现在存储有两种方案,一种是多表设计,每个表都对ID建立索引,查询速度应该会很快,即使数据量上百万;但是多表存储相当于要发起多次查询,每个表单独针对ID进行查询

另一种是单表的存储,一个表,存ID1,ID2,分别对ID1和ID2建立索引,查询的时候,用 ID1=XX or ID2=xx.不知道这种单表,or查询的,如果数据量很大,效率怎么样?
官方建议采用哪种方案?

要具体情况具体分析。

如果本来就是同样的数据,就没有必要刻意拆,因为数据库只会遍历一次数据库来查找同时符合两个条件的数据;反过来如果本来就是不同的数据,也没有必要刻意合并,因为合并之后数据库需要遍历更多的数据。