我目前有一个应用程序,可以在任何给定时间将新数据插入到我的数据库中。我还有一个不同的python脚本,该脚本在无限循环中检查我的数据库是否有新条目,当找到一个新条目时,它将选择它并使用它,然后再次等待。
我想知道是否有任何方法可以更有效,更准确地做到这一点?
谢谢
我目前有这样的设置:
<?php
class Login
{
private $db;
private $userEmail;
private $userPass;
function __construct($db)
{
$this->db = $db;
}
function vertifyPass($userEmail, $userPass)
{
$sqlStatement = "SELECT user_pass FROM user WHERE user_email = :userEmail";
$preparedStatement = $this->db->prepare($sqlStatement);
$preparedStatement->bindParam(':userEmail', $userEmail);
if($preparedStatement->execute())
{
$userData = $preparedStatement->fetchObject();
$userData = $userData->user_pass;
if(password_verify($userPass, $userData))
{
session_start();
$_SESSION['user_email'] = $userEmail;
header('Location: /profile.php');
}
else
{
echo "your username and password combinations was incorrect.";
}
}
}
}
?>
在一个循环中,例如:
conn = pyodbc.connect('Driver={ODBC Driver 13 for SQL Server};'
'Server=REDACTED;'
'Database= REDACTED;'
'UID= REDACTED;'
'PWD= REDACTED;')
cursor = conn.cursor()
它目前可以正常工作,但是我觉得它正在做很多工作而没有做。例如,在一周中,每个人每天只会真正访问数据库30-50次,而在周末,它将每天接近100-200次访问……唯一的是,没有固定数目它有时会访问它。
任何帮助都会有用。 谢谢
答案 0 :(得分:0)
我以前从来没有这样做。但是想到了三个想法。
(1)如果您的脚本正在写入另一个数据库,那么您的替代方法可能是设置源数据库的复制。原始数据库的DBA可以为您进行设置。
(2)如果您愿意对原始数据库进行大修,则可以考虑使用实时内存数据库(例如redis),具体取决于您可能会用到的用例。
(3)似乎sqlalchemy具有内置的事件侦听器。我在Python中使用sqlalchemy,但从未使用此特定功能。