如果不能改变上游的话,最简单的方法就是搞一个 bloom filter index ,postgresql 原生支持这种 index 。 如果只能用 mysql 的话,也可以在 mysql 里自己维护实现 bloom filter ,不是很难。 然后做分级索引,合并成一个大的 bloom 。 虽然会有 false positive ,只要控制在 1%以内,你就可以以极高的效率查出哪个码从来没出现过。仅在命中 bloom 的时候去做二次校检。