在使用django的时候,大家是如何保证数据库

在使用django的时候,大家是如何保证数据库,第1张

目前到django17 为止 修改model的前提是:你已经创建完model,并且已经 使用 syncdb 或 migrate 创建了相应的数据库表。 然后再 修改model,不会对数据库表产生任何修改的。 具体的东西,自己去看 Django 相应版本的文档去吧 不同版本,不太一样。

一样配置,只需要配置好数据库连接参数(一般配置在settings即可,或者单独的一个配置文件),使用MySQLdb进行连接mysql即可,在需要展示页面的viewspy处理好数据之间的交互即可(执行mysql语句,7788),然后整合传到前端即可

由于创建连接的代价是很高的, 我们每次访问数据库都重新创建连接的话是非常消耗性的

我们可以再程序启动的时候先创建出一些连接, 放在一个集合中, 访问数据库的时候从集合中获取, 使用结束再放回集合中

这样做只是在程序启动的时候消耗性能去创建连接, 每次访问数据库的时候都是从内存中获取连接, 可以大大提升效率

注意事项:

由于池中增删非常频繁, 使用集合LinkedList效率较高

集合中所有连接都被占用时创建新连接, 但需要注意连接总数

使用组合模式/动态代理处理释放连接的方法, 当运行close方法时, 将连接放回池中

关于数据库连接池

数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库 *** 作的性能。

数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被 使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超 过最大连接数量时,这些请求将被加入到等待队列中。

数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素:

1) 最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费;

2) 最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库 *** 作。

3) 如果最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。

J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。

调用:客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为 忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。

释放:当使用的池连接调用完成后,池驱动程序将此连接表记为空闲, 其他调用就可以使用这个连接

DATABASES = {

'default': {

'ENGINE': 'djangodbbackendsmysql', #数据库引擎

'NAME': 'test', #数据库名

'USER': 'root', #用户名

'PASSWORD': 'root', #密码

'HOST': '', #数据库主机,默认为localhost

'PORT': '', #数据库端口,MySQL默认为3306

'OPTIONS': {

'autocommit': True,

},

}

}

在配置里将数据库路径放进去。然后在module里,自己选择相应的库与相应的model做关联。

此外还可以指定表格中的字段名。另外如果上面的方法不好用,你也可以自己直接连接数据库,自己管理。

django的数据库连接是没有连接池的。 每次访问都连接一次,效率低。不过你也可以用同样的原理 ,用mysqldb之类的库,自己建立数据库连接。

以上就是关于在使用django的时候,大家是如何保证数据库全部的内容,包括:在使用django的时候,大家是如何保证数据库、python+django能够同时使用mongodb和mysql两种数据库引擎吗、如何处理django的数据库连接池等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9341862.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存