MySQL并发问题

来源:6-4 数据库长连接

qq_拱手河山讨欢_0

2019-01-30

查资料的到mysql最大连接数是16384,那是不是就是在同一时间最大只能有16384个用户访问数据库,它的并发量最多就是16384这么多。

写回答

3回答

咚咚呛

2019-02-13

举个例子说明小程序用户和数据库用户

# 数据库用户:root/123456
connection = MySQLdb.connect(host='localhost', \
        port=3306, user='root', passwd='123456')
        
# 小程序用户:只是作为数据存储在数据库里面,可以使用游标进行增删改查
cursor = connection.cursor()
cursor.execute('SELECT * from authorization_user') # 查询小程序用户数据


所以在这里,一个数据库用户就可以操作很多小程序用户的数据,故:一个连接可以支持很多应用层面用户,理论上不受应用层面的用户数量的影响。


而同一个数据库用户可以创建多个数据库连接。

connection1 = MySQLdb.connect(host='localhost', \
        port=3306, user='root', passwd='123456')
connection2 = MySQLdb.connect(host='localhost', \
        port=3306, user='root', passwd='123456')
connection3 = MySQLdb.connect(host='localhost', \
        port=3306, user='root', passwd='123456')


所以,最大连接数的限制与数据库用户和应用层面的用户都无直接关系。

希望对你有所帮助。

0
0

咚咚呛

2019-02-12

这里有些概念上的模糊,你提到的用户是指数据库用户,还是指应用层面的用户,比如小程序用户。


以下简单列几点,希望对你有帮助。

1. 一个数据库连接?️属于一个数据库用户,比如:root用户。

2. 一个数据库用户可以创建多个数据库连接,彼此独立。

3. 一个连接可以支持很多应用层面用户,理论上不受应用层面的用户数量的影响。


0
2
咚咚呛
回复
qq_拱手河山讨欢_0
这里需要区分小程序用户和数据库用户,我们使用数据库的时候使用的是数据库用户,小程序用户不会访问数据库,小程序用户只是作为数据存储在数据库而已。所以看第三点:一个连接可以支持很多应用层面用户,理论上不受应用层面的用户数量的影响。
2019-02-13
共2条回复

咚咚呛

2019-01-31

我看连续问了好几个数据库的问题,这位同学有认真思考数据库连接相关的知识点。

这里有几个理解上的偏差需要指正。

  1. 如果说最大连接数是16384,不是指同一时间最多16384个用户访问,而是最多同时支持16384个连接。每一个用户可以创建和拥有多个连接。当Django连接数据库时,可以通过命令show processlist 查看当前连接。如下图就是root用户拥有了两个连接。

    //img.mukewang.com/szimg/5c52fd160001ef3f15880324.jpg

  2. 最大支持16384应该是比较老的MySQL版本支持的最大连接数了,新版本应该可以支持得更高。


 希望对你有所帮助。

0
4
qq_拱手河山讨欢_0
回复
咚咚呛
那就是说,不同的用户可以通过同一个连接访问数据库,如果是这样的话,那一个链接最多支持多少用户那?
2019-02-13
共4条回复

Django+小程序技术打造微信小程序助手

0到1完整项目实战过程,是难得的Django+小程序全栈项目体验。

991 学习 · 507 问题

查看课程