我正在处理需要数据库连接的python应用程序..我用sqlite3开发了我的应用程序,但它开始显示错误(数据库被锁定)..所以我决定使用MySQL数据库而不是..它是相当不错的没有错误.. 唯一的问题是我需要让每个用户使用我的应用程序在他的电脑上安装MySQL服务器(例如appserv)。 所以我可以让mysql像sthonite3一样分开python lib。所以我可以生成一个python脚本,可以通过工具pyInstaller.exe转换成exe文件而无需用户安装mysql服务器???
更新 在查看代码后,我发现打开的连接没有正确关闭,并且正常使用sqllite3 ..感谢每个人
答案 0 :(得分:1)
这取决于(更多"取决于"在答案中)。
如果您需要在应用程序的用户之间共享数据 - 您需要在某处设置mysql数据库服务器,您的应用程序需要具有访问权限。而且,性能实际上取决于网络 - 取决于应用程序使用数据库的程度。应用程序本身只需要知道如何"说"使用数据库服务器 - python mysql驱动程序,如MySQLdb
或pymysql
。
如果您不需要在用户之间共享数据,那么sqlite
可能是一种选择。或者可能不是 - 取决于你想在那里存储什么,你需要做什么以及你需要做什么。
所以,问题多于答案,可能更适合评论。至少,想一想我所说的话。
另见:
希望有所帮助。
答案 1 :(得分:0)
如果您的应用程序是一个独立系统,每个用户都维护自己的私有数据库,那么您就无法在运行该应用程序的每个系统上安装MySQL。 您无法将MySQL捆绑到您的应用程序中,因此不需要单独安装。
你可以在你的应用程序中构建一个嵌入式MySQL版本(谢谢,Carsten,在评论中指出了这个)。更多信息请访问:http://mysql-python.blogspot.com/。可能需要一些努力才能实现这一点(在Windows上,你显然需要从源代码构建它),并且在生成可执行文件时需要做更多的工作来打包它,但这可能是一个MySQL解决方案。 / p>
我刚刚使用SQLite更新了一个Web应用程序,该应用程序已开始报告数据库锁定错误随着使用量的增加而增加。通过小心地重写数据库代码,我能够生成一个可以处理中等到重度使用的系统(在15人公司的环境中),可靠地仍然使用SQLite - 你必须小心保持你的连接最小化必要的时间,并始终调用.close()。如果您的应用程序确实是单用户,那么使用SQLite支持它应该没有问题 - 如果它是单线程的话,这是双重的。