Tag: 数据库

Liquibaselocking – 原因?

我在运行大量针对Oracle服务器的liquibase脚本时遇到了这个问题。 SomeComputer是我的。 Waiting for changelog lock…. Waiting for changelog lock…. Waiting for changelog lock…. Waiting for changelog lock…. Waiting for changelog lock…. Waiting for changelog lock…. Waiting for changelog lock…. Liquibase Update Failed: Could not acquire change log lock. Currently locked by SomeComputer (192.168.15.X) since 2013-03-20 13:39 SEVERE 2013-03-20 16:59:liquibase: Could not acquire change log […]

HyperLogLogalgorithm如何工作?

我最近在业余时间已经学习了不同的algorithm,而我遇到的一个看起来非常有趣的algorithm叫做HyperLogLogalgorithm – 它估计列表中有多less独特的项目。 这对我来说特别有意思,因为当我看到“基数”值(直到最近我一直认为它是不计算的)时,才使我回到了MySQL日子。 所以我知道如何在O ( n )中编写一个algorithm来计算一个数组中有多less个独特的项目。 我用JavaScript写了这个: function countUniqueAlgo1(arr) { var Table = {}; var numUnique = 0; var numDataPoints = arr.length; for (var j = 0; j < numDataPoints; j++) { var val = arr[j]; if (Table[val] != null) { continue; } Table[val] = 1; numUnique++; } return numUnique; } 但问题是,我的algorithm,而O ( […]

最喜欢的性能调整技巧

当您需要性能调优的查询或存储过程时,您尝试的第一件事是什么?

可以用一个外键列表列为空?

例如,我有一个表有多个ID列到其他表。 我只想要一个外键强制完整性,只要我把数据放在那里。 如果我稍后做一个更新来填充该列,那么它仍然会检查约束(这可能是数据库服务器的依赖,我使用MySQL和InnoDB表types)。 我相信这是一个合理的期望,但如果我错了,请纠正我。

跟踪数据库模式更改的机制

跟踪和/或自动化数据库模式更改的最佳方法是什么? 我们的团队使用Subversion进行版本控制,并且我们已经能够以这种方式自动化我们的一些任务(将构build到临时服务器,将testing代码部署到生产服务器),但是我们仍然在手动进行数据库更新。 我希望find或创build一个解决scheme,使我们能够跨不同环境的服务器高效地工作,同时继续使用Subversion作为后端,通过它将代码和数据库更新推送到各种服务器。 许多stream行的软件包包括检测数据库版本并应用必要更改的自动更新脚本。 这是甚至在更大规模(跨多个项目,有时多个环境和语言)上做到这一点的最好方法吗? 如果是的话,是否有任何现有的代码简化了stream程,或者最好是推出我们自己的解决scheme? 有没有人实现过类似的东西,并将其集成到Subversion post-commit挂钩中,或者这是一个坏主意? 虽然支持多种平台的解决scheme是可取的,但我们绝对需要支持Linux / Apache / MySQL / PHP堆栈,因为大部分工作都在该平台上。

何时不使用Cassandra?

最近有很多关于卡桑德拉的谈话。 Twitter,Digg,Facebook等都使用它。 什么时候有意义: 使用Cassandra, 不使用卡桑德拉和 使用RDMS而不是Cassandra。

好的工具来可视化数据库模式?

有没有什么好的工具可视化预先存在的数据库模式? 如果有问题,我正在使用MySQL。 我目前正在使用MySQL Workbench来处理一个SQL创build脚本转储,但是它笨重,缓慢,并且需要一个手动的过程来拖动所有的表(如果速度不是很慢的话,也可以)。

在SQL Server中更改列大小

我想将employee表中salary列的列大小从numeric(18,0)改为numeric(22,5) 有人可以告诉我该怎么做吗?

如何在Windows中从命令行查找mysql数据目录

在Linux中,我可以findmysql的安装目录,使用which mysql的命令。 但是我在窗户里找不到任何东西。 我尝试echo %path% ,并导致许多path与mysql bin的path。 我想从Windows命令行中findmysql数据目录以便在批处理程序中使用。 我也想从linux命令行findmysql数据目录。 可能吗? 或者我们该怎么做? 在我的情况下,MySQL数据目录是在安装文件夹,即..MYSQL\mysql server 5\data它可能会安装在任何驱动器,但是。 我想从命令行返回它。

如何在多列上进行INNER JOIN

我正在做一个家庭作业项目,我应该执行一个数据库查询,通过城市名称或机场代码查找航class,但flights表只包含机场代码,所以如果我想按城市search,我有joinairports表。 机场表有以下列: code, city 航class表有以下列: airline, flt_no, fairport, tairport, depart, arrive, fare fairport和tairport列是从和到机场代码。 列出发和arrive的date是出发和到达。 我想出了一个查询,首先joinfairport列和fairport列的airports.code 。 为了让我能够匹配tairport我必须在第一次join之前对前一场比赛进行另一次join。 SELECT airline, flt_no, fairport, tairport, depart, arrive, fare FROM (SELECT * FROM flights INNER JOIN airports ON flights.fairport = airports.code WHERE (airports.code = '?' OR airports.city='?')) AS matches INNER JOIN airports ON matches.tairport = airports.code WHERE (airports.code = […]