Tag: 数据库

数据库水平和垂直缩放之间的区别

我遇到了很多NoSQL数据库和SQL数据库。 衡量这些数据库的优缺点有多种参数,可扩展性就是其中之一。 水平和垂直缩放这些数据库有什么区别?

用户图像 – 数据库与文件系统存储

我正在用.NET编写一个上传函数,用于在用户configuration文件中显示图像。 我在两种不同的方式之间做出select,并想就咨询和意见征询意见。 将图像直接存储在文件系统上 将图像存储在数据库中 到目前为止,我一直主要是第一个选项 – 命名用户名后的图像,因为每个用户只能有一个演示文稿图像。 然后,如果用户有图像,如果不显示默认的“无图像”图像,则在指定的path中进行检查。 我喜欢的另一件事是它节省了DB中的空间 – 数据库将相当沉重,没有额外的二进制负载。 我相信还有其他方面,我没有想过,所以我想听听你的意见。 如果任何人有一个完全不同的解决scheme,请分享,以及!

如何在Firebase数据库中保存GeoFire坐标以及其他项目?

我正在开发一个应用程序,并在FirebaseDatabase保存一些Strings如postedAtTime,postedBy,postedOnDate。 我想将GeoFire坐标保存在上面所有string保存的同一个节点中,以便稍后我可以轻松地进行查询。 下面是我保存所有string的path: databaseReferenceHRequests = firebaseDatabase.getReferenceFromUrl("https://appName-e1a35.firebaseio.com/requests/"); 这是我如何保存它: // in onButtonClicked method: postNewRequest(null, imageUID, MainActivity.userName.getText().toString(), time, date, utcFormatDateTime, MainActivity.userEmail.getText().toString(), geoFire); // the method: public void postNewRequest(Bitmap bitmap, String imageUIDh, String postedBy, String postedAtTime, String postedOnDate, String utcFormatDateTime, String userEmail, GeoFire geoFire) { HRequest hRequest = new HelpRequest(null, imageUIDh, postedBy, postedAtTime, postedOnDate, utcFormatDateTime, userEmail, geoFire); databaseReferenceHRequests.push().setValue(hRequest); } […]

为什么null不等于null false

我正在阅读这篇文章: 在SQL中获取null == null 而共识是,当试图testing两个(可空)sql列的平等时,正确的做法是: where ((A=B) OR (A IS NULL AND B IS NULL)) 当A和B为NULL时,(A = B)仍然返回FALSE,因为NULL不等于NULL。 这就是为什么额外的检查是必需的。 什么时候testing不平等? 从上面的讨论来看,这让我想到,为了testing不平等,我需要做一些事情: WHERE ((A <> B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL)) 但是,我注意到,这是没有必要的(至less不是在informix 11.5),我可以这样做: where (A<>B) 如果A和B是NULL,则返回FALSE。 如果NULL不等于NULL,那么不应该返回TRUE? 编辑 这些都是很好的答案,但我想我的问题有点含糊。 请允许我改述一下: 鉴于A或B可以是NULL,是否足以检查它们的不等式 where (A<>B) […]

使用pdo通过php和linux连接到mssql

我正在尝试使用下面的代码来build立一个新的PDO连接。 new PDO("mssql:driver=????;Server={$serverName};Database={$databaseName}", $username, $password, array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 我不确定使用什么驱动程序? 或者如何安装它们。 我可以使用PHP中的mssql_connect函数完全正确地连接,但是我想要使用PDO库。 请让我知道,如果你有一个想法如何解决我的问题,或者我怎么能更好地提出我的问题? 我的php.ini设置为mssql是: ssql MSSQL支持启用 活动持久链接0 活动链接1 库版本FreeTDS 指令本地价值主值 mssql.allow_persistent On On mssql.batchsize 0 0 mssql.charset没有值没有值 mssql.compatability_mode关关 mssql.connect_timeout 5 5 mssql.datetimeconvert打开 mssql.max_links无限制无限 mssql.max_persistent无限制无限制 mssql.max_procs无限制无限制 mssql.min_error_severity 10 10 mssql.min_message_severity 10 10 mssql.secure_connectionclosures mssql.textlimit服务器默认服务器默认 mssql.textsize服务器默认服务器默认 mssql.timeout 60 60 谢谢

什么是涵盖索引?

我刚刚在一些数据库讨论中听到了涵盖索引的术语 – 这是什么意思?

如何在我的SQL Server代理作业中创build一个将运行我的SSIS包的步骤?

我正在尝试为SQL Server代理运行创build一个自动作业。 这项工作应该运行我的SSIS包。 以下是我到目前为止: EXEC sp_add_job @job_name = 'My Job' ,@description = 'My First SSIS Job' ,@job_id = @jobid OUTPUT EXEC sp_add_jobstep @job_id =@jobid ,@step_name = N'Upload Data' ,@step_id = 1 ,@command=N'/FILE "D:\Installs\Upload.dtsx"' EXEC sp_add_jobstep @job_id = @jobid ,@step_name = N'Download Data' ,@step_id = 2 ,@command=N'/FILE "D:\Installs\Download.dtsx"' 不幸的是,当我运行这个,我得到一个错误说 '/'附近语法不正确 我怀疑是在抱怨/FILE在我的命令。 我在任何地方都找不到有关在@command中使用的适当语法的文档 – 我将/FILE从我在某处find的一些旧代码中拉出来。 在作业中运行SSIS包的正确语法是什么?

在数据库表中使用sorting顺序列

比方说,我在购物网站的数据库中有一个Product表,以保存商店产品的描述,价格等。 使客户能够重新订购这些产品的最有效方法是什么? 我创build了一个Order列(整数)用于sortinglogging,但由于原始方法用于更改每个logging的顺序,所以在实际需要更改之后,这使我对性能感到头疼。 一个例子: Id Order 5 3 8 1 26 2 32 5 120 4 现在我能做些什么来改变ID=26到3的logging的顺序? 我所做的是创build一个过程,检查目标订单(3)中是否有logging,如果没有,则更新行的订单(ID = 26)。 如果以目标顺序存在logging,则该过程执行自身发送具有target order + 1该行的ID作为参数。 这导致更新每一个logging后,我想改变一个空间: Id Order 5 4 8 1 26 3 32 6 120 5 那么一个更聪明的人会做什么? 我使用SQL Server 2008 R2。 编辑: 我需要一个项目的顺序列是足够的sorting没有涉及二级键。 单独的订单栏必须为其logging指定一个独特的地方。 除了所有这些,我不知道我是否可以实现像链接列表:“下一个”列而不是“订单”列以保留下一个项目ID。 但我不知道如何编写查询以正确的顺序检索logging。 如果有人也有这个方法的想法,请分享。

如何从最后插入的行中获取值?

有没有办法从最后插入的行获取值? 我在插入一行PK的地方会自动增加,我想得到这个PK。 只有PK保证在表中是唯一的。 我正在使用JDBC和PostgreSQL的Java。

不能简单地使用PostgreSQL表名(“关系不存在”)

我试图运行下面的PHP脚本来做一个简单的数据库查询: $db_host = "localhost"; $db_name = "showfinder"; $username = "user"; $password = "password"; $dbconn = pg_connect("host=$db_host dbname=$db_name user=$username password=$password") or die('Could not connect: ' . pg_last_error()); $query = 'SELECT * FROM sf_bands LIMIT 10'; $result = pg_query($query) or die('Query failed: ' . pg_last_error()); 这会产生以下错误: 查询失败:错误:关系“sf_bands”不存在 在所有的例子中,我可以find有人得到一个错误,说明关系不存在,这是因为他们在他们的表名中使用大写字母。 我的表名不包含大写字母。 有没有办法查询我的表,而不包括数据库名称,即showfinder.sf_bands ?