讨论/系统设计/python 并发处理:小数据 400w 条,如何优化存储入数据库的性能?/
python 并发处理:小数据 400w 条,如何优化存储入数据库的性能?

之前的开发中、我们共有2800条城市。任务需求是:各个城市之间、握手原则、生成一一对应关系数据。

类似满无向图,也就是{ n(n-1)/2 }= 400w多条数据

其实问题有两个:

  • 如何生成400bw条数据(打印到随便什么文档都行,缓存起来都行)。
    数据可以用 ”a-b“代替(无所谓)?🙃
  • 构造完sql语句后,如何快速地插入postgresql数据库?🙃
展开讨论
共 2 个讨论

构建城市表

| 城市名称 | 代码<主键> |
————————————————————————
| 北京 | 1 |
| 天津 | 2 |
| 上海 | 3 |
| 海南 | 4 |

构建城市关系表

| 城市<主键> | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
——————————————————
| 1 | -1| 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
| 2 | -1| -1| 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
| 3 | -1| 1 | -1| 1 | 0 | 0 | 1 | 0 | 1 | 0 |
| 4 | -1| 1 | 1 | -1| 0 | 0 | 1 | 0 | 1 | 0 |
| 5 | -1| 1 | 1 | 1 |-1 | 0 | 1 | 0 | 1 | 0 |

-1 代表无意义
1 代表有关系
0 代表没有关系

性能优化

可以考虑数据表的横向分割或者纵向分割
具体分割依据实际业务考虑。

没有看明白困难是?排序后遍历取后面的城市组成ab,存到数据库就行了呀。400万数据插入会非常快。秒级。