10W级数据频繁查询修改与排序问题,如何提高效率

现有10w级的数据量,需求频繁的查询,频繁排序,该如何设计好的数据结构?因为数据变化频繁,初步考虑用map映射表索引查询,修改数据,但是修改之后数据又要根据一定的规则重新排序,显然map又不适用。如果采用vector容器可以解决排序,但查询修改数据的效率太过低下了,现在纠结该如何提高效率?用list不知道如何?大概的数据结构如下:由于学艺不清,在此请教各位前辈。
struct
{
int index;
std::string name;
//...........
}

map红黑树,排序并没有那么慢。
你这种需求,可以自己几种数据结构测试对比一下。

目前也没有想到什么好的方法,数据排完序后,需要索引一段区间的数据,这个也就vector支持,map和list不支持线性特效。又不能使用vector查询效率太低。太纠结了,先想想了

数据库读写分离,读表做缓存和top n

10万级,用mysql memery table吧