假如相同的数据fieldA是相同的,比如交易记录有几条,fieldA就相当于订单号,订单号是相同的。现在想通过已知的fieldB和fieldC查询id为01的记录,查询到fieldA,然后再根据已知的fieldD字段查询id为00的记录。
这样写数据量大的情况下,查询很慢,如何优化呢?
只从个sql上看的话,
B和C建立联合索引(貌似可以建唯一索引?),A建立普通索引。
但是暂时无法理解BCD的业务含义,无法深入分析其具体应对的业务场景,
比如这个D=4就相当令人费解,还有BC如果查出来有多条记录,这个sql是会报错的,因为不是用的in。
另外,都已经亿级了,就不能做成分区表么?如果查询条件带分区字段,查询效率会提高不少
join比where快吧