我有一个小问题:主索引和二级索引的性能有什么区别?是什么导致了这种差异?
我在谷歌搜索,我已经看到二级索引存储在另一个表中,所以这会减慢所有操作..但是还有其他一些原因可以证明这种性能下降是合理的吗?
非常感谢
假设我在列上有一个带有聚簇索引的下表(例如,a)
CREATE TABLE Tmp
(
a int,
constraint pk_a primary key clustered (a)
)
Run Code Online (Sandbox Code Playgroud)
然后,让我们假设我有两组非常大的行要插入到表中.
你认为在第一组和第二组中插入值之间会有性能差异吗?如果是这样,为什么?
谢谢
sql-server clustered-index database-performance insert-statement database-fragmentation
我可以在查询中使用什么而不是LIKE?由于LIKE对搜索条件的性能影响较差.
我的情景:
SELECT
*
FROM
MetaDataTag
WHERE
Name LIKE 'SUN RCC%'
Run Code Online (Sandbox Code Playgroud)
我不能使用包含作为表格上的全文索引,我不选择.
建议将非常有帮助.
很多时候我必须运行这个查询:
select * from users where name is not null and name != ''
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点。我需要更多的性能,任何建议。我想这是很常见的,所以可能会有一些编译的函数,就像
select * from users where name is present()
Run Code Online (Sandbox Code Playgroud)
使用 PostgreSQL 9 版本。
在InnoDB数据库中,用于存储将被索引的域名和64个字符长的字段可以是数据类型CHAR(64)或VARCHAR(64),其中第一个将填充数据,因此所有记录的长度相同.显然,这会在速度方面提供一些性能提升,但由于填充也会占用更多的磁盘空间.
从理论上讲,如果没有进行任何台架测试,CHAR(36)确实会提供一些性能提升吗?
我在 MS SQL Server 中有一个简单的表。
CREATE TABLE [dbo].[Personas] (
[Name] varchar(250) NOT NULL,
[ID] varchar(250) NOT NULL,
[IntranetID] varchar(250) NULL,
[eMail] varchar(250) NULL,
[Number] varchar(50) NULL,
[ModifDate] datetime NULL)
ON [PRIMARY];
Run Code Online (Sandbox Code Playgroud)
在将数据再次截断并插入到该表后,我无法执行简单的选择查询或简单的计数查询。进程任务继续运行而没有结束。但是我可以在除了这个表之外的其他表上成功查询。
select * from Personas;
select count(*) from Personas;
Run Code Online (Sandbox Code Playgroud)
我怎么知道发生这种情况的原因以及如何解决?查询中没有错误消息,所以我不知道错误是什么。我如何知道表是否已损坏?
我不是 SQL Server 管理方面的专家,但我尝试在下面执行。我不确定这是否是原因,如果是,如何解决这个问题。
DBCC SQLPERF(logspace)
Result:
Log Size (MB) = 19.6
Log Space Used (%) = 78.79
Status = 0
Run Code Online (Sandbox Code Playgroud)
请帮助。先感谢您。
database sql-server database-administration database-performance sql-server-2012
我们在生产环境中使用MySql 5.5.是否可以在生产中打开慢速查询日志?这样做的表现意味着什么?我在这里提到了官方文档,但它没有说明性能.
根据慢查询日志,以下查询(和类似查询)偶尔需要大约 2s 执行:
INSERT INTO incoming_gprs_data (data,type) VALUES ('3782379837891273|890128398120983891823881abcabc','GT100');
Run Code Online (Sandbox Code Playgroud)
表结构:
CREATE TABLE `incoming_gprs_data` (
`id` int(200) NOT NULL AUTO_INCREMENT,
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`data` text NOT NULL,
`type` char(10) NOT NULL,
`test_udp_id` int(20) NOT NULL,
`parse_result` text NOT NULL,
`completed` tinyint(1) NOT NULL,
PRIMARY KEY (`id`),
KEY `completed` (`completed`)
) ENGINE=InnoDB AUTO_INCREMENT=5478246 DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)
与此表相关的活动:
SELECT * FROM incoming_gprs_data WHERE completed = 0,处理它们并更新completed = 1completed …我的表中有4列的复合唯一索引和性能问题的查询,它们分别过滤了2列.也许是一个愚蠢的问题,但我是否应该对各个列进行索引以提高性能?谢谢你的帮助!
我有以下SQL查询,并想知道是否有一种方法来优化查询.
SELECT * FROM LogEntry WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(updateTime) > 10;
Run Code Online (Sandbox Code Playgroud)
在updateTime上添加索引可以提高性能,可以做更多的事情来提高性能
mysql ×5
sql ×4
database ×3
sql-server ×3
bulk-load ×1
bulkinsert ×1
indexing ×1
innodb ×1
null ×1
oracle ×1
postgresql ×1
sql-like ×1
t-sql ×1