小编Ste*_*gin的帖子

唯一插入性能:主键与唯一索引

我有一个唯一值表 ( domains_unique),列domainvarchar(255),有超过 2000 万条记录。

通过保持唯一约束,插入表的最快方法是什么domain

我决定查询应该是:

INSERT IGNORE INTO domains_table (domain) VALUE ('domain.com')
Run Code Online (Sandbox Code Playgroud)

我应该做domain主键或者我应该使它成为一个独特的指数?

主键方法:

CREATE TABLE `domains_unique` 
(
     `domain` varchar(255) NOT NULL
     PRIMARY KEY (`domain`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE = utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)

唯一索引方法:

CREATE TABLE `domains_unique` 
(
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `domain` varchar(255) NOT NULL
    PRIMARY KEY (`id`),
    UNIQUE KEY unique_index (`domain`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE = utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)

又怎么会在很大程度上将改变CHARSET,并COLLATIONascii_bin …

mysql myisam index primary-key index-tuning

5
推荐指数
1
解决办法
9150
查看次数

多字节替换在 SQL Server 中不起作用

为什么一个有效而另一个无效?

SELECT REPLACE(N'IA?I' ,N'?','x') -- doesn't match (returns 'IA?I')
SELECT REPLACE('IA?I' ,'?','x') -- works (returns 'IAxI')
Run Code Online (Sandbox Code Playgroud)

我的猜测是在第二个示例中 SQL Server 会看到 '?' 作为 2 个字符 (0x19 02) 并且不做一些破坏多字节匹配的整理优化。

应该怎么做才能使多字节示例工作?

sql-server t-sql

0
推荐指数
1
解决办法
1816
查看次数

标签 统计

index ×1

index-tuning ×1

myisam ×1

mysql ×1

primary-key ×1

sql-server ×1

t-sql ×1