婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL中冗余和重復索引的區別說明

MySQL中冗余和重復索引的區別說明

熱門標簽:百應電話機器人優勢 外呼系統打電話上限是多少 電話外呼系統改號 曲靖移動外呼系統公司 怎樣在地圖標注銷售區域 啥是企業400電話辦理 地圖標注費用是多少 南昌三維地圖標注 武漢網絡外呼系統服務商

MySQL允許在單個列上創建多個索引,無論是有意還是無意,MySQL需要單獨維護這些重復索引,優化器在優化查詢時也需要逐個考慮這會影響MySQL的性能

概念闡述

重復索引: 在相同的列上按照相同的順序創建的相同類型的索引。應該避免創建這樣的重復索引,發現之后也應該立即移除。

冗余索引: 兩個索引按照相同的順序覆蓋了相同的列。

創建的原因

一般來說,我們有時候會在不經意間創建了重復索引,例如下面的例子:

CREATE TABLE test(
 ID INT NOT NULL PRIMARY KEY,
 A INT NOT NULL,
 B INT NOT NULL,
 UNIQUE(ID),
 INDEX(ID)
)ENGINE=InnoDB;

因為MySQL的唯一限制和主鍵限制都是通過索引實現的,所以事實上使用如上代碼創建的表實際上會在ID列上創建3個索引。通常沒有理由這樣做,除非是在同一列上為了滿足不同的查詢需求創建不同類型的索引。比如KEY(col)和FULLTEXT KEY(col)兩種索引。

冗余索引和重復索引有些不同。如果創建了索引(A,B),再創建索引(A)就是冗余索引,因為這只是前一個索引的前綴索引。但是如果創建了索引(B,A),則不是冗余索引,索引(B)也不是冗余索引,因為它不是索引(A,B)的最左前綴列。除此之外,不同類型的索引也不會是B樹索引的冗余索引,無論覆蓋的索引列是什么。

在大多數情況下都不需要使用冗余索引,應該盡可能拓展已有的索引而不是創建新的索引。但有時候出于性能的考慮,比如拓展已有的索引會使得其變得太大,從而影響其他使用該索引的查詢的性能。

影響

創建冗余索引作為覆蓋索引可以提高我們對于部分查詢的QPS,但是存在兩個索引也有缺點,即索引成本更高。

當表中的索引越來越多時,表的插入速度會變慢。一般而言,增加新索引將會導致INSERT、UPDATE、DELETE等操作的速度變慢,特別是當新增索引之后導致達到了內存的瓶頸的時候。

解決冗余索引和重復索引的方法很簡單,刪除這些索引就可以 ,但是首先要做的就是找出這樣的索引。

補充:MySQL中重復索引和重復外鍵清理

MySQL允許在相同列上創建重復的索引,但這樣做對數據庫卻是有害而無利的,需要定期檢查此類重復索引以改善數據庫性能。

可減少磁盤空間占用、減少磁盤IO、減少優化器優化查詢時需要比較的索引個數、減少數據庫維護冗余索引的各類開銷、提高數據庫性能(插入、更新、刪除)

重復索引檢測

pt-duplicate-key-checker:通過SHOW CREATE TABLE輸出的表定義檢測MySQL表中重復或者冗余的索引或外鍵

可以檢測到的冗余/重復索引類型:若某個索引和另外某個索引以同樣的順序包含同樣的列,或者該索引包含的列是另外某個索引的最左前綴列,則被認為是重復/冗余的索引。

默認情況下只在同類型的索引間(如BTREE索引)進行比較,不同類型的索引即使符合上述描述也不會被認為是重復/冗余,但這一行為可以通過參數改變。

除此之外,還可檢測重復的外鍵,即引用的表和列均相同的外鍵。對于聚簇索引的表,在輔助索引后添加主鍵列的索引也被認為是冗余的,因為這種情況下,輔助索引末尾本身就包含有主鍵信息。

基本用法以及樣例輸出如下

[root@VM_8_180_centos packages]# pt-duplicate-key-checker A=utf8, F=/etc/my.cnf, h=localhost, u=root, P=3306 –ask-pass

樣例輸出:

# ########################################################################
# dcf.privilege                              
# ########################################################################
# Uniqueness of UQI_IDX_1 ignored because PRIMARY is a duplicate constraint
# UQI_IDX_1 is a duplicate of PRIMARY
# Key definitions:
#  UNIQUE KEY `UQI_IDX_1` (`privilege_id`),
#  PRIMARY KEY (`privilege_id`),
# Column types:
#   `privilege_id` varchar(50) collate utf8_bin not null comment '權限id'
# To remove this duplicate index, execute:
ALTER TABLE `dcf`.`privilege` DROP INDEX `UQI_IDX_1`;
# ########################################################################
# dcf.t_game_config                            
# ########################################################################
# Uniqueness of pkey ignored because PRIMARY is a duplicate constraint
# pkey is a duplicate of PRIMARY
# Key definitions:
#  UNIQUE KEY `pkey` (`pkey`)
#  PRIMARY KEY (`pkey`),
# Column types:
#   `pkey` bigint(20) not null auto_increment
# To remove this duplicate index, execute:
ALTER TABLE `dcf`.`t_game_config` DROP INDEX `pkey`;
# ########################################################################
# dcf.t_project_institution                        
# ########################################################################
# index_1 is a left-prefix of index_2
# Key definitions:
#  KEY `index_1` (`project_id`),
#  KEY `index_2` (`project_id`,`institution_id`,`delete_flag`)
# Column types:
#   `project_id` bigint(20) not null comment '項目id'
#   `institution_id` varchar(20) not null comment '機構id'
#   `delete_flag` tinyint(4) not null
# To remove this duplicate index, execute:
ALTER TABLE `dcf`.`t_project_institution` DROP INDEX `index_1`;
# ########################################################################
# dcf_commons.bank_cnaps                         
# ########################################################################
# idx is a duplicate of PRIMARY
# Key definitions:
#  KEY `idx` (`cnaps`)
#  PRIMARY KEY (`cnaps`),
# Column types:
#   `cnaps` varchar(255) not null comment '電子聯行號'
# To remove this duplicate index, execute:
ALTER TABLE `dcf_commons`.`bank_cnaps` DROP INDEX `idx`;
# ########################################################################
# dcf_contract.customer_bank_account                   
# ########################################################################
# IDX_CUSTOMER_ID is a left-prefix of UQI_IDX_1
# Key definitions:
#  KEY `IDX_CUSTOMER_ID` (`customer_id`)
#  UNIQUE KEY `UQI_IDX_1` (`customer_id`,`account_no`,`branch_bank`,`account_type`,`account_name`) USING BTREE,
# Column types:
#   `customer_id` varchar(20) collate utf8_bin not null comment '客戶id'
#   `account_no` varchar(40) collate utf8_bin default null comment '銀行賬號'
#   `branch_bank` varchar(100) collate utf8_bin default null comment '開戶支行'
#   `account_type` tinyint(4) default null comment '賬戶類型:比如收款賬戶,還款賬戶等\n0-收款賬戶\n1-還款賬戶'
#   `account_name` varchar(100) collate utf8_bin default null comment '銀行賬戶戶名'
# To remove this duplicate index, execute:
ALTER TABLE `dcf_contract`.`customer_bank_account` DROP INDEX `IDX_CUSTOMER_ID`;
# ########################################################################
# dcf_contract.t_contract_account                     
# ########################################################################
# IDX_CONTRACT_ID is a left-prefix of t_contract_account_uq1
# Key definitions:
#  KEY `IDX_CONTRACT_ID` (`contract_id`)
#  UNIQUE KEY `t_contract_account_uq1` (`contract_id`,`account_type`),
# Column types:
#   `contract_id` bigint(20) not null comment '合同id'
#   `account_type` tinyint(4) not null comment '賬戶類 型:globalconstant.bankaccounttypec常數 \n0-收款賬戶\n1-還款賬戶 等'
# To remove this duplicate index, execute:
ALTER TABLE `dcf_contract`.`t_contract_account` DROP INDEX `IDX_CONTRACT_ID`;
......
......
# ########################################################################
# Summary of indexes                           
# ########################################################################
# Size Duplicate Indexes  173317386
# Total Duplicate Indexes 18
# Total Indexes      562

會給出重復/冗余類型、索引/外鍵定義、索引包含的列類型、移除重復/冗余索引/外鍵的SQL、最后會給出有關索引的統計信息。

重復索引刪除

直接執行工具輸出結果中的ALTER TABLE語句即可,但是執行前一定要仔細評估可能造成的影響。比如,表非常非常大的情況下可能造成主從復制延遲,又比如SQL中若包含索引提示的話直接刪除索引可能導致報SQL語法錯誤,最好事先查一下是不是包含此類SQL(可通過general log或者tcpdump工具獲取SQL并加以分析)

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • MySQL查詢冗余索引和未使用過的索引操作
  • mysql重復索引與冗余索引實例分析
  • 詳解mysql中的冗余和重復索引

標簽:吉林 黑河 甘南 資陽 錦州 滄州 隨州 荊州

巨人網絡通訊聲明:本文標題《MySQL中冗余和重復索引的區別說明》,本文關鍵詞  MySQL,中,冗余,和,重復,索引,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL中冗余和重復索引的區別說明》相關的同類信息!
  • 本頁收集關于MySQL中冗余和重復索引的區別說明的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人午夜激情视频| 欧美国产精品中文字幕| 中文字幕永久在线不卡| 91丝袜美腿高跟国产极品老师| 一二三区精品福利视频| 日韩欧美视频在线| 91丝袜美女网| 国产精品亚洲成人| 日韩午夜中文字幕| 99精品偷自拍| 激情图片小说一区| 亚洲成a人片综合在线| 中文字幕在线一区免费| 精品剧情在线观看| 欧美日韩国产另类不卡| 91在线视频播放地址| 国产成都精品91一区二区三| 激情另类小说区图片区视频区| 亚洲成人福利片| 亚洲自拍偷拍九九九| 亚洲精品日韩一| 国产精品久久久久久久第一福利| 精品国产伦一区二区三区免费| 欧美三级日韩三级| 欧美综合一区二区| 欧美丝袜丝nylons| 欧美综合欧美视频| 色婷婷久久一区二区三区麻豆| 不卡的av在线| 99精品欧美一区| 色婷婷国产精品久久包臀| 91亚洲男人天堂| 色天天综合久久久久综合片| 91丨九色porny丨蝌蚪| 国产99久久精品| 成人一级视频在线观看| 成人精品视频.| 97se亚洲国产综合自在线不卡 | 国产亚洲一区二区三区在线观看 | 久久久久99精品国产片| 国产区在线观看成人精品| 波多野结衣一区二区三区| 风间由美一区二区av101| 成人性生交大片免费看在线播放| 国产suv一区二区三区88区| 成人一区二区三区视频 | 色综合久久久久综合体桃花网| 91麻豆自制传媒国产之光| 91在线一区二区三区| 欧亚洲嫩模精品一区三区| 在线不卡a资源高清| 久久一区二区三区四区| 国产精品久久久久一区| 亚洲一二三区不卡| 久久99精品国产麻豆不卡| 国产精品中文字幕一区二区三区| 粉嫩高潮美女一区二区三区| 色婷婷综合久久久久中文 | 国产福利不卡视频| 99久久精品久久久久久清纯| 欧美亚洲综合在线| xf在线a精品一区二区视频网站| 亚洲国产精品av| 亚洲午夜激情网站| 国产精品一区二区视频| 在线一区二区三区做爰视频网站| 日韩三级.com| 最新久久zyz资源站| 日韩成人dvd| 亚洲日本在线a| 日本不卡视频一二三区| 91丨porny丨国产| 精品三级在线看| 亚洲伦理在线精品| 国产精品影视在线观看| 欧美色区777第一页| 国产精品妹子av| 美女视频黄a大片欧美| 色欧美片视频在线观看| 久久女同性恋中文字幕| 一区二区三区四区亚洲| 在线视频国产一区| 欧美在线综合视频| 久久久99免费| 日韩福利视频导航| 91亚洲男人天堂| 久久久综合精品| 麻豆精品在线观看| 欧美亚洲综合一区| 亚洲色图一区二区| 日本麻豆一区二区三区视频| 韩国女主播一区二区三区| 欧美色精品天天在线观看视频| 国产欧美日韩麻豆91| 老司机精品视频在线| 欧美猛男男办公室激情| 亚洲猫色日本管| 成人午夜伦理影院| 欧美激情综合在线| 国产成人在线网站| 日韩免费观看高清完整版| 丝袜诱惑制服诱惑色一区在线观看| 91福利在线观看| 亚洲精品视频一区二区| 色婷婷国产精品久久包臀| 久久久久久影视| 国产乱对白刺激视频不卡| 精品国产乱码久久久久久久久| 日韩二区在线观看| 欧美人体做爰大胆视频| 日本视频一区二区| 日韩一级片在线观看| 麻豆精品新av中文字幕| 精品国产免费视频| 国产高清不卡一区| 国产欧美精品一区二区色综合朱莉| 男男视频亚洲欧美| 日韩欧美三级在线| 精品亚洲欧美一区| 国产欧美精品国产国产专区| 成人h动漫精品| 亚洲三级久久久| 在线不卡a资源高清| 麻豆精品一区二区综合av| 精品1区2区在线观看| 成人免费看视频| 一区二区国产视频| 日韩视频在线一区二区| 国产伦精品一区二区三区视频青涩 | 亚洲欧美视频一区| 欧美性受极品xxxx喷水| 日韩成人一级大片| 久久久久高清精品| 麻豆久久久久久久| 国产女同性恋一区二区| 色婷婷av久久久久久久| 日本最新不卡在线| 国产精品女主播av| 欧美电影一区二区| 丁香婷婷深情五月亚洲| 婷婷六月综合亚洲| 国产日韩欧美高清在线| 欧美日韩国产三级| 大尺度一区二区| 日韩经典中文字幕一区| 久久精品水蜜桃av综合天堂| 欧美日韩国产a| 国产91丝袜在线观看| 奇米四色…亚洲| 国产精品久久久久久久午夜片| 7777精品伊人久久久大香线蕉的| 国产精品综合二区| 亚洲成av人综合在线观看| 国产免费成人在线视频| 欧美亚一区二区| 99re热视频这里只精品| 久久爱www久久做| 亚洲成人福利片| 中文字幕欧美一区| 久久久99精品免费观看不卡| 欧美性大战久久久| 99在线热播精品免费| 日韩精品一二区| 一区二区在线观看av| 欧美不卡123| 99久久精品费精品国产一区二区| 视频一区二区不卡| 国产精品午夜在线| 欧美在线高清视频| 91麻豆自制传媒国产之光| 久久av中文字幕片| 成人免费在线观看入口| 在线观看国产91| 亚洲mv大片欧洲mv大片精品| 国产亚洲欧洲一区高清在线观看| 欧美优质美女网站| 色哟哟国产精品| 国产美女在线观看一区| 亚洲成人精品影院| 欧美色爱综合网| 成人a免费在线看| 全国精品久久少妇| 亚洲欧洲国产日韩| 亚洲乱码精品一二三四区日韩在线| 精品国产精品网麻豆系列| 欧美亚洲一区二区在线观看| 国产电影一区在线| 亚洲高清免费观看高清完整版在线观看| 91麻豆精品国产| 午夜欧美一区二区三区在线播放| 亚洲男同1069视频| 精品国产伦一区二区三区观看方式| 色综合久久久久综合体桃花网| 一区二区在线观看免费视频播放| 一个色在线综合| 国产精品私人影院| 日韩一区二区三区电影在线观看 | 制服丝袜av成人在线看| 欧美丰满美乳xxx高潮www| 97久久人人超碰|