Tag: 数据库

如何在Postgres中使用Blob数据types

我在我的rails应用程序中使用Postgresql数据库。 在数据库中存储大文件或数据我在MySql中使用了blob数据types。 对于Postgres哪些数据types,我不得不使用MySql中的blob? 谢谢!

像'%Query%'和全文searchCONTAINS查询的性能

我有一个情况,我想search一个单词 。 对于这种情况,从性能angular度来看哪个查询是好的? Select Col1, Col2 from Table Where Col1 Like '%Search%' 要么 Select Col1, Col2 from Table Where Col1 CONTAINS(Col1,'Search') ?

Hibernate的saveOrUpdate行为

有谁知道Hibernate是如何知道是否INSERT或更新数据库中的一个值,当session.saveOrUpdate()被调用? 到目前为止,我只确定它不依赖于caching中的信息,并且数据库中实体的存在是由主键确定的。

有没有像Redis DB,但不限于RAM大小?

我正在寻找一个符合这些标准的数据库: 可能是不持久的; 几乎所有的数据库密钥都需要在3-6小时内更新一次(100M +密钥,总大小为100Gb) 能够通过键(或主键)快速select数据 这需要是一个DBMS(所以LevelDB不适合) 数据写入时,数据库集群必须能够提供查询服务(单个节点可以被阻止) 不在内存中 – 我们的数据集将超出内存限制 水平缩放和复制 支持全部重写所有数据(删除数据后,MongoDB不会清空空间) C#和Java支持 这是我使用这样的数据库的过程:我们有一个分析集群,每4-6小时产生100Mlogging(50GB)的数据。 数据是一个“键 – 数组[20]”。 这个数据需要通过一个前端系统以每秒1-10k的速度分配给用户。 平均而言,只有约15%的数据被请求,其余的将在下一个数据集产生的4-6小时内被重写。 我试过了: MongoDB的。 数据存储开销,高碎片整理成本。 Redis的。 看起来很完美,但内存有限,我们的数据超过了它。 所以问题是:有什么像Redis,但不限于RAM大小?

redis是一个持久的数据存储?

我的意思是说,“服务器”可以随时崩溃,只要磁盘保持完好,没有数据丢失(参见ACID )。 似乎这就是日志模式的作用,但是如果启用日志logging,是不是不符合在内存数据上运行的目的呢? 阅读操作可能不会受到日志logging的影响,但是看起来日记似乎会毁掉您的写入性能。

将MySQL数据库放在版本控制下?

我目前正在为我的PHP项目使用SVN。 我以为我应该让我的数据库在版本控制下,但是最好的办法是什么? 我只是在SVN中的项目中创build一个db文件夹,将SQL更改粘贴到一个名为from_1.0_to_2.0.sql的文件中并提交?

SQLite作为低stream量网站的生产数据库?

我正在考虑使用SQLite作为一个网站的生产数据库,可能会收到20个同时在线用户,但有可能是一个高峰,可能是多个倍数(因为该网站将在开放的互联网上访问,总是有有人会在某个地方张贴链接,可能会立即将许多人带到网站)。 SQLite是否有可能? 我知道这不是一个理想的生产场景。 我只是问,这是否是在一个现实的可能性领域。

何时或为什么要使用正确的外连接而不是左连接?

维基百科指出: “实际上,显式的右外连接很less被使用,因为它们总是可以被左外连接replace,并且不提供额外的function。 任何人都可以提供一个他们喜欢使用RIGHT符号的情况,为什么? 我想不出有什么理由去使用它。 对我来说,这不会让事情更清楚。 编辑:我是甲骨文退伍军人使新年的决议从(+)语法撤销自己。 我想做对的

在SQL Server中比较datestring和date时间?

在SQL Server中,我有一个包含时间元素的DATETIME列。 例: '14 AUG 2008 14:23:019' 什么是最好的方法,只select特定的一天的logging,忽略时间部分? 示例:(不安全,因为它不匹配时间部分并且不返回任何行) DECLARE @p_date DATETIME SET @p_date = CONVERT( DATETIME, '14 AUG 2008', 106 ) SELECT * FROM table1 WHERE column_datetime = @p_date 注意:鉴于这个网站也是logging笔记和技术,你拿起,然后忘记,我要发布我自己的答案这个问题作为date时间在MSSQL中的东西可能是我在SQLBOL查找最多的话题。 更新澄清的例子更具体。 编辑对不起,但我不得不下降错误的答案(回答错误的结果)。 @Jorrit:在WHERE (date>'20080813' AND date<'20080815')将返回13日和14日。 @wearejimbo: closures,但没有雪茄! 徽章授予你。 您错过了14/08/2008 23:59:001至23:59:999(即午夜前不到1秒)的logging。

将不可为空的列添加到SQL Server中的现有表?

我已经有一个由数据组成的表格。 我需要改变表添加两个不是null的新列。 我怎么做,而不会丢失任何现有的数据? 这是我尝试的(通过右键单击表并selectdevise): 添加了新的列“EmpFlag”(位,空),“CreatedDate”(date时间,空) 更新表中的“EmpFlag”列,以获得一些有效的值。 (只想在一个领域工作,所以我没有更新'CreatedDate'字段) 现在右键单击表,devise,并使其不为空。 当我试图保存时,出现这个错误信息: 保存更改是不允许的。 您所做的更改需要删除并重新创build以下表格 。