冗餘和重複索引冗餘和重複索引的概念:mysql允許在相同列上建立多個索引,無論是有..
冗餘和重複索引
冗餘和重複索引的概念:
mysql允許在相同列上建立多個索引,無論是有意的還是無意的。mysql需要單獨維護重複的索引,香港虛擬主機,並且優化器在優化查詢的時候也需要逐個地進行考慮,香港虛擬主機,這會影響效能。
重複索引:是指在相同的列上按照相同的順序建立的相同型別的索引。應該避免這樣建立重複索引,發現後也應該立即移除。
eg:有時會在不經意間建立了重複索引
create table test (
id int not null primary key,
a int not null,
index(id)
)engine=innodb;
pt-duplicate-key-checker -udbuser -pdbpaswd --charset=gbk \
--database=dbname
執行過後將會統計出有關dbname資料庫的重複和冗餘的索引,內容如下:
# dbname.test1
# vkey is a left-prefix of keydesc_index
# key definitions:
# key `vkey` (`vehiclekey`),
# key `keydesc_index` (`vehiclekey`,`description`)
# column types:
`vehiclekey` char(8) not null default ''
`description` char(255) not null default ''
# to remove this duplicate index, execute:
alter table `dbname`.`test1` drop index `vkey`;
# dbname.test2
# vkey is a duplicate of primary
# key definitions:
# key `vkey` (`vehiclekey`),
# primary key (`vehiclekey`),
# column types:
`vehiclekey` varchar(8) not null default '0'
# to remove this duplicate index, execute:
alter table `dbname`.`test2` drop index `vkey`;
它會統計出所有出現的重複,冗餘的索引,伺服器空間,還將要執行的sql語句也提供了,是不是很方便。
mysql 查詢冗餘索引 冗餘索引對查詢效率的影響
結果一 與執行計畫相關的索引 出現在possible keys的那些 索引的數量與sql執行消耗時間成正比。create index idx1 on test index performance col1 create index idx2 on test index performance col...
mysql 冗餘和重複索引
mysql允許在相同列上建立多個索引,無論是有意還是無意,mysql需要單獨維護重複的索引,並且優化器在優化查詢的時候也需要逐個地進行考慮,這會影響效能。create table test id intnot null primary key,a intnot null b intnot null,...
mysql資料冗餘 MySQL冗餘資料的三種方案
一,為什麼要冗餘資料 網際網路資料量很大的業務場景,往往資料庫需要進行水平切分來降低單庫資料量。水平切分會有乙個patition key,通過patition key的查詢能夠直接定位到庫,但是非patition key上的查詢可能就需要掃瞄多個庫了。此時常見的架構設計方案,是使用資料冗餘這種反正規...