如何给数据库表添加索引

主要考虑的点

  1. 数据量大小
  2. 阻塞的时间长短

Mysql构建索引

页管理、目录项记录、页分裂

PG构建索引

排序,元数据操作,物理复制

--------------------关于mysql和pg构建索引的处理过程-----------------------
MySQL和PostgreSQL(PG)作为流行的开源关系型数据库系统,它们在索引的创建和构建过程上有一些共同之处,同时也存在一些差异。

MySQL索引构建过程:

页管理:MySQL中的InnoDB存储引擎使用页作为存储空间管理的单位,每个页通常大小为16KB。数据存储在页中,并通过双向链表进行链接。在创建索引时,InnoDB会按照主键值的顺序将数据组织到索引页中,主键值较小的数据放在前面,较大的数据放在后面。

目录项记录:为了快速定位数据,InnoDB会为每个页创建一个目录项记录,其中包括该页的最小主键值和页目录号(页号)。这样,通过主键可以快速地定位到数据所在的页。

页分裂:当插入新数据时,如果当前页的主键值超过了该页的最大主键值,InnoDB会分配一个新的页来存放数据,并更新链表,这个过程称为页分裂。页分裂可能会导致数据的移动和额外的I/O操作。

PostgreSQL索引构建过程:

排序:PostgreSQL在创建B-Tree索引时,会先对待创建索引的数据进行排序,然后按照B-Tree的页面格式直接写入页面,避免了不必要的页分裂。

元数据操作:在PostgreSQL中,创建索引的过程涉及到一系列的元数据操作,包括在Catalog系统中生成新索引的元数据,以及在索引列上进行排序并生成B-Tree的page。

物理复制:PostgreSQL的标准复制使用WAL进行物理复制,而MySQL的标准复制使用binlog进行逻辑复制。PostgreSQL也支持通过发布/订阅模式进行逻辑复制。

对比分析:

页管理:MySQL使用页和双向链表进行管理,而PostgreSQL使用进程而非线程模型,这可能导致更多的系统资源消耗,但也提供了更好的隔离性。

排序:PostgreSQL在创建索引前对数据进行排序,而MySQL在插入数据时进行排序,这可能会影响两者的性能表现。

复制:MySQL的逻辑复制可能与PostgreSQL的物理复制在数据一致性和复制速度上有所不同。

ACID事务支持:两者都支持ACID事务,但PostgreSQL提供了更强大的支持,例如行级安全(RLS)。

查询优化器:PostgreSQL通常被认为拥有更优秀的查询优化器。

扩展性:PostgreSQL支持多种扩展,如PostGIS提供地理空间能力,而MySQL的扩展性主要体现在可插拔的存储引擎架构。

易用性:MySQL在某些方面更为宽容,例如在GROUP BY子句的SELECT语句中允许包含非聚合列。

生态:PostgreSQL的可扩展架构使其生态系统近年来更加繁荣。

在选择数据库时,需要考虑以上各点,并根据具体的应用场景和业务需求来决定最适合的数据库系统。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容