电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL數據庫索引原理及優化策略

瀏覽:238日期:2023-05-05 10:12:01
目錄
  • 1 索引
    • 索引概念
    • 索引作用
    • 索引的使用場景
  • 2 索引分類
    • B樹索引和B+樹索引區別
  • 3 索引操作
    • 創建主鍵索引
    • 唯一索引的創建
    • 普通索引的創建
    • 查詢索引
    • 刪除索引
    • 索引創建原則

1 索引

索引概念

索引是一種特殊的文件,包含著對數據表里所有記錄的引用指針。可以對表中的一列或多列創建索引,并指定索引的類型,各類索引有各自的數據結構實現。

索引作用

數據庫中的表、數據、索引之間的關系,類似于書架上的圖書、書籍內容和書籍目錄的關系,索引所起的作用類似書籍目錄,可用于快速定位、檢索數據。索引可以極大地提高數據庫的性能。

索引的使用場景

要考慮對數據庫表的某列或某幾列創建索引,需要考慮以下幾點:

  • 數據量較大,且經常對這些列進行條件查詢。
  • 該數據庫表的插入操作,及對這些列的修改操作頻率較低。
  • 索引會占用額外的磁盤空間。

2 索引分類

  • 從索引存儲結構劃分:BTree索引、Hash索引、FULLTEXT全文索引、RTree索引
  • 從應用層次劃分:普通索引,唯一索引,主鍵索引,復合索引
  • 從索引鍵值類型劃分,主鍵索引,輔助索引(二級索引)
  • 從數據存儲和索引鍵值邏輯關系劃分:聚集索引(聚簇索引)非聚集泰引(非聚簇索)
  • 從索引列數量劃分:單列索引,復合索引

B樹索引和B+樹索引區別

區別:

數據的保存位置不同:B+樹保存在葉子節點,B樹保存在所有的節點中

體現出B+樹優勢:節點不存儲data,這樣一個節點就可以存儲更多的key。可以使得樹更矮,所以IO操作次數更少。 查詢性能穩定:每次查詢都是從根節點遍歷到葉子節點,查詢路徑長度相同,即每次查詢效率相當,時間復雜度固定是O(log(n))

葉子節點的指向:B+樹相鄰的葉子節點通過指針相連,B樹沒有

體現出B+樹優勢:所有葉子節點形成有序鏈表,便于范圍查找

3 索引操作

創建主鍵索引

-- 在創建表的時候,直接在字段名后指定 primary keycreate table user1(id int primary key, name varchar(30));-- 在創建表的最后,指定某列或某幾列為主鍵索引create table user2(id int, name varchar(30), primary key(id));-- 創建表以后再添加主鍵create table user3(id int, name varchar(30));alter table user3 add primary key(id);

主鍵索引的特點:

  • 一個表中,最多有一個主鍵索引,當然可以使符合主鍵
  • 主鍵索引的效率高(主鍵不可重復)
  • 創建主鍵索引的列,它的值不能為null,且不能重復
  • 主鍵索引的列基本上是int

唯一索引的創建

-- 在表定義時,在某列后直接指定unique唯一屬性。create table user4(id int primary key, name varchar(30) unique);-- 創建表時,在表的后面指定某列或某幾列為uniquecreate table user5(id int primary key, name varchar(30), unique(name));-- 創建表以后再添加uniquecreate table user6(id int primary key, name varchar(30));alter table user6 add unique(name);

唯一索引的特點:

  • 一個表中,可以有多個唯一索引
  • 查詢效率高
  • 如果在某一列建立唯一索引,必須保證這列不能有重復數據
  • 如果一個唯一索引上指定not null,等價于主鍵索引

普通索引的創建

--在表的定義最后,指定某列為索引create table user8(id int primary key,name varchar(20),email varchar(30),index(name));--創建完表以后指定某列為普通索引create table user9(id int primary key, name varchar(20), email varchar(30));alter table user9 add index(name); -- 創建一個索引名為 idx_name 的索引create table user10(id int primary key, name varchar(20), email varchar(30));create index idx_name on user10(name);

普通索引的特點:

  • 一個表中可以有多個普通索引,普通索引在實際開發中用的比較多
  • 如果某列需要創建索引,但是該列有重復的值,那么我們就應該使用普通索引

查詢索引

  • show keys from 表名

mysql> show keys from goods\G
*********** 1. row ***********
Table: goods <= 表名
Non_unique: 0 <= 0表示唯一索引
Key_name: PRIMARY <= 主鍵索引
Seq_in_index: 1
Column_name: goods_id <= 索引在哪列
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE <= 以二叉樹形式的索引
Comment:
1 row in set (0.00 sec)

  • show index from 表名;
  • desc 表名

刪除索引

  • 刪除主鍵索引: alter table 表名 drop primary key;
  • 其他索引的刪除: alter table 表名 drop index 索引名; 索引名就是show keys from 表名中的Key_name 字段
mysql> alter table user10 drop index idx_name;
  • drop index 索引名 on 表名
mysql> drop index name on user8

索引創建原則

  • 比較頻繁作為查詢條件的字段應該創建索引
  • 唯一性太差的字段不適合單獨創建索引,即使頻繁作為查詢條件
  • 更新非常頻繁的字段不適合作創建索引
  • 不會出現在where子句中的字段不該創建索引

到此這篇關于MySQL數據庫索引原理及優化策略的文章就介紹到這了,更多相關MySQL數據庫索引內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: MySQL
相關文章:
主站蜘蛛池模板: 网带通过式抛丸机,,网带式打砂机,吊钩式,抛丸机,中山抛丸机生产厂家,江门抛丸机,佛山吊钩式,东莞抛丸机,中山市泰达自动化设备有限公司 | 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 选宝石船-陆地水上开采「精选」色选机械设备-青州冠诚重工机械有限公司 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 隆众资讯-首页_大宗商品资讯_价格走势_市场行情 | 寮步纸箱厂_东莞纸箱厂 _东莞纸箱加工厂-东莞市寮步恒辉纸制品厂 | Duoguan 夺冠集团 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 轴流风机-鼓风机-离心风机-散热风扇-罩极电机,生产厂家-首肯电子 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家 | 双齿辊破碎机-大型狼牙破碎机视频-对辊破碎机价格/型号图片-金联机械设备生产厂家 | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | 挤奶设备过滤纸,牛奶过滤纸,挤奶机过滤袋-济南蓝贝尔工贸有限公司 | 柔软云母板-硬质-水位计云母片组件-首页-武汉长丰云母绝缘材料有限公司 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 众品地板网-地板品牌招商_地板装修设计_地板门户的首选网络媒体。 | 聚氨酯复合板保温板厂家_廊坊华宇创新科技有限公司 | 压砖机、液压制砖机、静压砖机、环保砖机生产厂家—杜甫机械 | 裹包机|裹膜机|缠膜机|绕膜机-上海晏陵智能设备有限公司 | 无锡网站建设_小程序制作_网站设计公司_无锡网络公司_网站制作 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 上海办公室装修_上海店铺装修公司_厂房装潢设计_办公室装修 | 硬齿面减速机[型号全],ZQ减速机-淄博久增机械 | 硬度计,金相磨抛机_厂家-莱州华煜众信试验仪器有限公司 | 江苏大隆凯科技有限公司| 工业雾炮机_超细雾炮_远程抑尘射雾器-世纪润德环保设备 | 锂电池生产厂家-电动自行车航模无人机锂电池定制-世豹新能源 | 酒万铺-酒水招商-酒水代理 | 济南律师,济南法律咨询,山东法律顾问-山东沃德律师事务所 | 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 | 成都亚克力制品,PVC板,双色板雕刻加工,亚克力门牌,亚克力标牌,水晶字雕刻制作-零贰捌广告 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 |