在按ID排序时非常慢,但按时间戳和ID排序时很快的情况下,可以采用以下解决方法:
示例代码(使用数据库索引):
CREATE INDEX idx_id ON your_table(id);
示例代码(使用哈希表):
data = [
{"id": 1, "timestamp": 1625435132},
{"id": 2, "timestamp": 1625435133},
{"id": 3, "timestamp": 1625435131},
# ...
]
# 按时间戳和ID排序
sorted_data = sorted(data, key=lambda x: (x["timestamp"], x["id"]))
# 按ID排序
sorted_data = sorted(data, key=lambda x: x["id"])
示例代码:
sorted_data_cache = None
def get_sorted_data(data):
global sorted_data_cache
if sorted_data_cache is None:
sorted_data_cache = sorted(data, key=lambda x: (x["timestamp"], x["id"]))
return sorted_data_cache
# 使用缓存的排序结果
sorted_data = get_sorted_data(data)
通过以上方法,可以优化按ID排序的速度,提高整体的排序性能。