这意味着,当用户执行长时间运行的操作时,工作进程会被阻塞,完成之前,其他人无法使用它。
应该没有人真正在生产中只用一个工作进程来运行 Django,但是我们仍然希望确保一个查询不会浪费太多资源太久。...在大多数 Django 应用程序中,大部分时间都花在等待数据库查询上了。所以,在 SQL 查询上设置超时是一个很好的开始。...假设我们在一列中有这些值,每一个都是一个块:
1, 2, 3, 4, 5, 6, 7, 8, 9
我们为每三个相邻的块创建一个范围:
[1,2,3], [4,5,6], [7,8,9]
对于每个范围,我们将保存范围内的最小值和最大值...再举一个例子,这次列中的值不会被很好地排序:
[2–9], [1–7], [3–8]
再试着查找 5:
[2–9] — 可能在这里
[1–7] — 可能在这里
[3–8] — 可能在这里
索引是无用的...创建索引时要考虑的要比索引的大小要多得多。但是现在,通过 Django 1.11 支持索引,我们可以轻松地将新类型的索引整合到我们的应用程序中,使它们更轻,更快。