我正在帮助维护一个程序,这本质上是一个大型复杂的MySQL数据库友好的只读前端 – 程序从用户的input构build特定的SELECT查询,将查询发送到数据库,获取结果,后处理它们,并很好地显示给用户。 我想为构build的查询的预期性能添加某种forms的合理/启发式预测 – 有时,用户无意间进行查询,这将不可避免地花费很长时间(因为它们会返回巨大的结果集,在数据库被索引的方式上,“反对谷物”),我希望能够向用户展示一些“有些可靠”的信息/关于查询要花多长时间的猜测。 它不一定是完美的,只要它不会变得如此糟糕,经常与现实相冲突,导致用户学会忽视它的“哭泣”效应;-)根据这个信息,用户可能会决定去喝一杯咖啡(如果估计是5-10分钟),去吃午饭(如果是30-60分钟),杀死查询并尝试其他的东西(也许更严格的限制他们要求的信息)等等等等 我对MySQL的EXPLAIN语句不是很熟悉 – 我看到很多关于如何使用它来优化查询或数据库的模式,索引等的信息,但没有太多的关于如何将它用于我的更有限的目的 – 简单地做一个预测,把数据库作为一个给定的(当然,如果预测足够可靠,我最终可能会转而使用它们来在查询可能需要的替代forms之间进行select,但是,对于现在来说,我只是为了向用户展示性能猜测而非常高兴)。 任何指针…?
例如,如果我有一个表“Person”的列“id”引用列表“工作人员”列“id” 这两个查询之间的区别是什么? 他们产生相同的结果。 SELECT * FROM Person JOIN Worker ON Person.id = Worker.id; 和 SELECT * FROM Person, Worker WHERE Person.id = Worker.id; 谢谢
我被要求支持和采用PostgreSQL应用程序,但是我是一个MySQL的人 – 这是一个现实的任务吗?
我有一个XML列的表。 本专栏存储了一些值,用于configuration我的应用程序。 我创build它有一个更灵活的架构。 我无法find直接从SQL Management Studio中的表视图更新此列的方法。 其他(例如INT或Varchar)列是可编辑的。 我知道我可以写一个UPDATE语句或创build一些代码来更新它。 但是我正在寻找更灵活的东西,让高级用户直接编辑XML。 有任何想法吗? 再次重申:请不要回答我可以写一个应用程序。 我知道,那正是我想要避免的。
我正在使用此代码重置表上的身份: DBCC CHECKIDENT('TableName', RESEED, 0) 这大部分时间工作正常,第一次插入我插入1到Id列。 但是,如果我删除数据库并重新创build它(使用我写的脚本),然后调用DBCC CHECKIDENT,插入的第一项将具有0的ID。 有任何想法吗? 编辑:经过研究后,我发现我没有正确阅读文档: http : //msdn.microsoft.com/en-us/library/aa258817(SQL.80).aspx – “当前标识值设置为new_reseed_value。如果创build后没有行插入到表中,执行DBCC CHECKIDENT后插入的第一行将使用new_reseed_value作为标识,否则插入的下一行将使用new_reseed_value + 1。
我有一个用下面的模式创build的表: CREATE TABLE [dbo].[Visualizations] ( VisualizationID int identity (1,1) NOT NULL ) 由于表没有可设置的字段,我不知道如何插入logging。 我试过了: INSERT INTO [Visualizations]; INSERT INTO [Visualizations] () VALUES (); 既没有工作。 什么是适当的语法来做到这一点? 编辑:由于许多人似乎对我的表感到困惑,它纯粹用来代表许多子表的父母…每个人都通过FK引用这个表,每个FK都是PK,所以跨越所有这些表中的ID是唯一的。
希望我能得到每个数据库服务器的答案。 有关如何检索索引的大纲,请参阅: 数据库索引如何工作?
我不知道从哪里开始解决这个问题,但如果我有一个AJAX Web应用程序发送请求到服务器,并在数据库上运行长查询(postgresql在我的情况),有没有办法停止或杀死查询如果仍然在运行,用户刷新页面或closures会话…等?
请解释什么是元组在sql?谢谢..
我特别想着unsigned int 。 这里是一个实际的例子:当你的身份列最大化时,你做什么? 有可能要么BigInt (8字节存储而不是4)或重构应用程序以支持负整数,甚至创build自己的规则, 如此答案中所示 ; 这些选项都不是最佳select。 UInt将是一个理想的解决scheme,但SQL Server不提供它(MySQL所在的地方)。 据我所知,无符号数据types不是SQL标准的一部分(SQL-2003),但对我来说仍然是一种浪费。 不包括这些(在SQL Server或标准中)的原因是什么?