问题标签 [database-management]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PDO 中的 MySQL 数据库连接管理
我对 PHP/MySQL 很陌生,我边走边学。我学到的新知识之一是,对于给定的用户名,可以对数据库建立最大连接数。当我第一次开始在 Wordpress 上构建我的网站时,我使用的是旧的 mysql_query() 命令。我从来不需要连接到 MySQL 数据库,因为 Wordpress 只需在网站上登录就可以保持活动连接。当我决定将所有 MySQL 查询切换到 PDO 扩展时,我无法再利用 Wordpress 的活动连接,而不得不启动我自己的数据库连接。我在一个单独的 PHP 配置文件中执行此操作,该文件包含在运行脚本的每个页面中。PHP 代码如下所示:
不幸的是,现在我经常收到以下错误:
" SQLSTATE[42000] [1203] 用户已经有超过 'max_user_connections' 的活动连接"
根据一些在线研究,我尝试了各种不同的方法来解决这个问题。首先,我尝试在每个脚本的末尾将数据库连接设置为 null(尽管这应该是 PHP PDO 的默认设置?)。然后我尝试null
在每次查询数据库之后将每个语句句柄设置为(这是一个无望的努力)。最后,我尝试通过更改配置文件中的以下行来使用持久连接:
这些似乎都不起作用,我仍然得到同样的错误。该网站准备就绪后,每天需要能够处理 100-200 人输入无数不同的数据。即使我能弄清楚如何使用 PDO 来利用 Wordpress 的主动连接,那也是一个好的开始。我会很感激我能得到的任何帮助。
更新:
我在我SHOW FULL PROCESSLIST
的一个代码中作为 MySQL 查询运行,并且出现了非常奇怪的行为。这是我的脚本的第一部分(不包括SHOW FULL PROCESSLIST
查询):
如果我尝试SHOW PROCESS LIST
在 if 语句之外运行查询,我会得到一个结果,说明我有一个活动连接;但是,如果我尝试在 if 语句中运行查询SHOW FULL PROCESSLIST
,则会收到超出连接数的错误。基于这个结果,我认为当用户提交他们的表单(基本上是尝试连接到数据库两次)时,我在页面顶部的行可能会导致问题,所以我将它移到 if 语句中,但是也没有什么区别。我不知道为什么会这样。include
更新/回答(还有一些问题):
我弄清楚我的问题是什么。完成我的一个脚本后,有一个 javascript 命令会弹出一个窗口,另一个脚本将在该窗口中为他们打印发票。第二个脚本还尝试使用配置文件连接到数据库。用户正在使用的表单是动态的(他们可以根据需要放入尽可能少的数据集),因此当用户插入少量数据时,PDO 查询执行得非常快,并且之间没有冲突连接数;但是,如果用户输入大量数据,则需要花费大量时间,并且服务器会达到最大连接数。问题实际上在于服务器环境不佳和我的查询效率低下(仍在学习 PHP)。在这一点上我能想到的唯一解决方案是在我的第二个脚本上放置更长的睡眠时间(已经使用了 3 秒的睡眠时间),让另一个脚本赶上来,但在某些时候,这将花费太长时间。不知道大家有没有更好的建议?
jdbc - 支持 IPv6 格式的数据库服务器地址的数据库管理工具
我在 Windows server 2008 上使用 Sybase ASE 15.5 并使用 Sybase Central(JDBC 驱动程序)进行管理。在将我的机器配置为仅 IPv6 模式(纯 IPv6)并更正 DSEDIT 连接属性后,我可以 ping Datase 服务器并通过 ISQL 实用程序(在 C++ 中打开客户端程序)访问数据库。
但是,Sybase Central 不允许在主机名字段中使用 IPv6 地址
IE:
IPv4:
IPv6:
我尝试了其他一些 JDBC 工具,例如 DbVisualizer,但它只允许 IPv4,而不是 IPv6
IE:
是否有支持 IPv6 格式的数据库服务器地址的数据库管理工具(JDBC 驱动程序)?
mysql - 如何确定慢查询?
我的网站正在经历一个非常缓慢的加载时间。我怀疑可能是 javascript 或 php 导致加载时间更长,但我已经在 YSlow 中测试了我的网站,它的等级是 B,我认为这还不错。
现在我想检查我的数据库,如果查询有问题,数据库索引会导致我的网站加载速度变慢。
是否有一些教程或技巧我可能会阅读或尝试测试数据库以确定是否有慢查询?数据库管理有什么技巧吗?
mysql - 在mysql数据库中有效地存储用户数据
我正在开发一个推荐引擎,因此需要存储大量数据并跟踪用户的一举一动。所以,基本上我的网站是一个产品搜索引擎,将有一组查询作为用户数据。以下是数据集的一些示例
例子
等等。
一种方法(天真)可能是有一个与我的每个用户相关联的 ID,然后有一个与该 ID 对应的字符串,该字符串将采用这种形式(字符串用 分隔~
):-
但是考虑到我以后将如何处理这些数据,这种方法效率不高。
任何人都可以想出一个在 mysql 中相当容易实现的非常有效的模型吗?
如果我在提出疑问时不清楚,请发表评论。
database - Oracle 自动授予权限
我正在尝试分析 DBMS 提供的安全性,以下场景简要描述了我正在寻找的内容。
// 当前连接数据库的用户是“master”
// 1. 创建新用户的基本步骤
// 2. 为新用户授予基本角色
// 3. 新用户“slave”现在已连接到数据库
// 用户“slave”创建数据库对象(表、过程等),并授予系统其他用户的权限
如何让创建者“主人”在没有得到“奴隶”用户明确许可的情况下获得所创建的用户“奴隶”拥有或将来将拥有的任何特权?
我知道奴隶可以将他的任何特权授予其他用户,但是是否有特殊特权允许其他用户获得“奴隶”将来拥有的特权?
我正在使用 Oracle,但我不确定其他 DBMS 是否允许这种情况。
java - 暴露方法的更好方法
我正在编写 Web 服务的数据库管理器层。我必须决定如何实现我的库:情况就是这样。我有一堂课,PersistenceUnit:
启动我的数据库服务并允许我连接到它。我想要的是编写实现持久化方法的类,如 addUser(...) 或 deleteFile(...) 等。我的疑问是如何实现这些方法。因为我有两大类操作(一个在用户上,另一个在文件上)我想创建类(用户和文件)并在它们上实现公共静态方法,或者,同样,创建两个单例。然后应用层将不得不调用方法,而不必每次都创建和销毁对象。这是实现我的层的好方法吗?以这种方式,并发处理得当,还是有更好的方法(也许是一种模式)来最大化性能和多线程?当然这不是内存绑定层,因为上层不必不断地创建对象。谢谢
php - 具有多单元支持功能的库存
我一直在开发一个库存系统(PHP Codeigniter 和 MySQL),我已经设置了几乎所有东西,除了我的一个客户想要在系统中实现的一个功能 - 系统的多单元支持功能。
目前我的系统每笔交易只支持每件单件:
在多单元特征中,这将变为:
有人可以给我提示一下实现这一点的简单方法吗?我只想知道从哪里开始做这件事。如果有人能分享一个关于这个的想法,我将不胜感激:)
sql-server-2008-r2 - sql server 将镜像数据库拆分到多个设备上
假设我有一个大型生产镜像 1TB 数据库,它驻留在单个 MDF 设备上,我想将其拆分为 5 200 Gig 设备。我想在不中断生产的情况下做到这一点。
我认为我可以打破镜像并使用 RESTORE 过程创建镜像以快速实现拆分到多个设备,而不会中断生产。这样做两次可以让我在几个小时内完成这项工作。
有人做过吗?它是我们在镜像时看到的首选方法吗?
我的其他选择,优点和缺点是什么?和陷阱?
此外,我还记得另一个更有机的过程,即创建 5 个新的新设备,不知何故,随着时间的推移,将对象转移到新设备上。不确定这个过程,但我似乎记得它正在讨论。听起来这可能需要很长时间,并且有时可能会导致一些时钟?
谢谢
...射线
mysql - 如何有效管理我的数据库的新产品?
我有一个商店的数据库,我必须不断添加新产品。但是在发布新产品之前或修改之后,管理员必须检查它是否具有正确的数据。
我认为有两种选择:
1 .-在产品表中添加一个名为verified (type boolean) 的新字段。然后,当我修改或添加新产品时,默认设置为 false。并在管理员检查时将其设置为 true。
2 .-使用另一个数据库,每5天导出和导入所有内容。
你认为最好的方法是什么?您还有其他选择来获得我想要做的事情吗?
任何建议、提示或帮助将不胜感激,如果您需要更多信息,请告诉我,我将编辑帖子。
database - 如何创建数据库管理系统?
我必须创建一个数据库管理系统作为学校的项目,但我不知道如何去做。它不必非常复杂。是否有任何教程显示如何做到这一点?而且,最合适的语言是什么?