【发布时间】:2013-02-05 19:47:46
【问题描述】:
示例场景:
MySQL 运行单个服务器 -> 主机名
该服务器上有两个 MySQL 数据库 -> USERS , GAMES 。
任务 -> 从 GAMES.my_games_table 获取 10 个最新游戏,并从 USERS.my_users_table 获取玩这些游戏的用户(假设没有加入)
在 Django 和 Python MySQLdb 中,为什么每个数据库都有一个游标更可取?
每个 MySQL 服务器单个的扩展游标的缺点是什么,可以切换数据库(例如通过查询“use USERS;”),然后在相应的数据库上工作
MySQL 连接很便宜,但如果存在线性流且没有可能需要两个游标的复杂事务,那么单个连接不比多个连接更好吗?
【问题讨论】:
-
Django 支持多个数据库连接 - docs.djangoproject.com/en/dev/topics/db/multi-db
-
@JonathanVanasco 是的,这正是我的问题,为什么位于 SAME SERVER 上的 2 个数据库应该有两个连接。例如。在 settings.py 我必须同时定义用户和游戏,django 将建立 2 个连接而不是一个。
-
@dm03514 这是一个示例场景。假设逻辑分片,或只读其他数据库的从属。底线是,单个 mysql 实例上有多个数据库。
-
我明白了。我把你的问题解释错了。我认为这是因为 DB API 规范:python.org/dev/peps/pep-0249/#cursor-objects"""这些对象代表一个数据库游标,用于管理获取操作的上下文。从同一连接创建的游标不是孤立的,即所做的任何更改游标到数据库的其他游标立即可见。从不同连接创建的游标可以或不能隔离,具体取决于实现事务支持的方式(另请参见连接的 .rollback() 和 .commit() 方法) ."""
标签: python mysql django mysql-python