我正在进行数据库服务器迁移,但我不知道(在谷歌搜索和在这里搜索之后)如何使用psql命令行工具列出 PostgreSQL 上的数据库权限(或服务器上的所有权限)?
我在 Ubuntu 11.04 上,我的 PostgreSQL 版本是 8.2.x。
存储过程真的可以防止针对 PostgreSQL 数据库的 SQL 注入攻击吗?我做了一点研究,发现即使我们只使用存储过程,SQL Server、Oracle 和 MySQL 也不能安全地抵御 SQL 注入。但是,这个问题在 PostgreSQL 中不存在。
PostgreSQL 核心中的存储过程实现是防止 SQL 注入攻击还是其他什么?或者即使我们只使用存储过程,PostgreSQL 是否也容易受到 SQL 注入的影响?如果是这样,请给我举个例子(例如书籍、网站、论文等)。
MyISAM 如何比 InnoDB“更快”,如果
我有一个 MS SQL Server 2008 R2 DB 服务器,目前正在与生产应用程序一起使用。
该应用程序的新增强功能现在需要varchar(100)增加表格中的列长度。
能否在不影响当前数据的情况下增加 prod DB 中此现有列的长度?
是否必须在非工作时间完成此更改以避免服务中断?
问这个问题,特别是针对 Postgres,因为它对 R 树/空间索引有很好的支持。
我们有下表,其中包含单词及其频率的树结构(嵌套集模型):
lexikon
-------
_id integer PRIMARY KEY
word text
frequency integer
lset integer UNIQUE KEY
rset integer UNIQUE KEY
Run Code Online (Sandbox Code Playgroud)
和查询:
SELECT word
FROM lexikon
WHERE lset BETWEEN @Low AND @High
ORDER BY frequency DESC
LIMIT @N
Run Code Online (Sandbox Code Playgroud)
我认为覆盖索引(lset, frequency, word)会很有用,但我觉得如果范围内的lset值太多,它可能表现不佳(@High, @Low)。
(frequency DESC)有时,当使用该索引的搜索早期产生@N与范围条件匹配的行时,一个简单的索引也可能就足够了。
但似乎性能在很大程度上取决于参数值。
有没有办法让它快速执行,不管范围(@Low, @High)是宽还是窄,也不管高频词是否幸运地在(窄)选择的范围内?
R-tree/空间索引有帮助吗?
添加索引,重写查询,重新设计表,没有限制。
postgresql performance index database-design query-performance
我的应用程序是非常数据库密集型的。目前,我正在运行 MySQL 5.5.19 并使用 MyISAM,但我正在迁移到 InnoDB。剩下的唯一问题是校验和性能。
我的应用程序CHECKSUM TABLE在高峰时间每秒执行大约 500-1000 条语句,因为客户端 GUI 不断轮询数据库以进行更改(它是一个监控系统,因此必须非常敏感且快速)。
使用 MyISAM,可以在表修改时预先计算实时校验和,并且速度非常快。但是,InnoDB 中没有这样的东西。所以,CHECKSUM TABLE很慢。
我希望能够检查表的最后更新时间,不幸的是,这在 InnoDB 中也不可用。我现在卡住了,因为测试表明应用程序的性能急剧下降。
更新表的代码行太多了,因此在应用程序中实现逻辑来记录表更改是不可能的。
是否有任何快速方法来检测 InnoDB 表中的变化?
如何在不运行的情况下设置我的数据库以将“日期”视为“MDY”:
SET datestyle = "ISO, MDY";
Run Code Online (Sandbox Code Playgroud)
每次我试图访问它?我使用的是 Postgresql 9.1 版,Ubuntu 12.04。我的系统区域设置,在数据库安装时设置为en_CA.utf8,我最近将其更改为en_US.utf8.
show lc_CTYPE
Run Code Online (Sandbox Code Playgroud)
返回:--> "en_CA.UTF-8"
但
show LC_CoLLATE
Run Code Online (Sandbox Code Playgroud)
返回:--> "en_CA.UTF-8"
我想更改文件中的datadir路径my.ini。
现有的datadir路径是C:/ProgramData/MySQL/MySQL Server 5.1/Data/
我的C:驱动器大小为 30 GB,MySQL 数据文件夹占用 25 GB。所以我想datadir将F:/naveen/data.
这可能吗?
我的机器运行的是Windows Server 2003。
我们可以通过多种方式存储日期和时间信息。存储 DateTime 信息的最佳方法是什么?
使用 DateTime将日期和时间存储在2 个单独的列或一列中?
你能解释为什么这种方法更好吗?
(链接到 MySQL 文档以供参考,问题是一般性的,不是特定于 MySQL)
日期和时间类型:日期和时间
受到 Django 建模问题的启发:Database Modeling with multiple many-to-many Relations in Django。db-design 是这样的:
CREATE TABLE Book
( BookID INT NOT NULL
, BookTitle VARCHAR(200) NOT NULL
, PRIMARY KEY (BookID)
) ;
CREATE TABLE Tag
( TagID INT NOT NULL
, TagName VARCHAR(50) NOT NULL
, PRIMARY KEY (TagID)
) ;
CREATE TABLE BookTag
( BookID INT NOT NULL
, TagID INT NOT NULL
, PRIMARY KEY (BookID, TagID)
, FOREIGN KEY (BookID) REFERENCES Book (BookID)
, FOREIGN KEY (TagID) …Run Code Online (Sandbox Code Playgroud) postgresql ×4
mysql ×3
innodb ×2
performance ×2
date-format ×1
datetime ×1
foreign-key ×1
index ×1
myisam ×1
mysql-5.1 ×1
permissions ×1
psql ×1
security ×1
sql-server ×1
ubuntu ×1
windows ×1