位置: 编程技术 - 正文

MySQL索引之主键索引(mysql主键和索引)

编辑:rootadmin

推荐整理分享MySQL索引之主键索引(mysql主键和索引),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql 主索引,mysql索引建立原则,mysql索引建立原则,mysql创建主键索引的关键字使用,mysql索引建立原则,mysql 主索引,mysql主键索引和聚集索引,mysql创建主键索引的关键字使用,内容如对您有帮助,希望把文章链接给更多的朋友!

在MySQL里,主键索引和辅助索引分别是什么意思,有什么区别?上次的分享我们介绍了聚集索引和非聚集索引的区别,本次我们继续介绍主键索引和辅助索引的区别。

1、主键索引

主键索引,简称主键,原文是PRIMARY KEY,由一个或多个列组成,用于唯一性标识数据表中的某一条记录。一个表可以没有主键,但最多只能有一个主键,并且主键值不能包含NULL。

在MySQL中,InnoDB数据表的主键设计我们通常遵循几个原则:

1、采用一个没有业务用途的自增属性列作为主键;2、主键字段值总是不更新,只有新增或者删除两种操作;3、不选择会动态更新的类型,比如当前时间戳等。

这么做的好处有几点:

1、新增数据时,由于主键值是顺序增长的,innodb page发生分裂的概率降低了;可以参考以往的分享“[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键”;2、业务数据有变更时,不修改主键值,物理存储位置发生变化的概率降低了,innodb page中产生碎片的概率也降低了。MyISAM表因为是堆组织表,主键类型设计方面就可以不用这么讲究了。

MySQL索引之主键索引(mysql主键和索引)

2、辅助索引

辅助索引,就是我们常规所指的索引,原文是SECONDARY KEY。辅助索引里还可以再分为唯一索引,非唯一索引。

唯一索引其实应该叫做唯一性约束,它的作用是避免一列或多列值存在重复,是一种约束性索引。

3、主键索引和辅助索引的区别

在MyISAM引擎中,唯一索引除了key值允许存在NULL外,其余的和主键索引没有本质性区别。也就是说,在MyISAM引擎中,不允许存在NULL值的唯一索引,本质上和主键索引是一回事。

而在InnoDB引擎中,主键索引和辅助索引的区别就很大了。主键索引会被选中作为聚集索引,而唯一索引和普通辅助索引间除了唯一性约束外,在存储上没本质区别。

从查询性能上来说,在MyISAM表中主键索引和不允许有NULL的唯一索引的查询性能是相当的,在InnoDB表通过唯一索引查询则需要多一次从辅助索引到主键索引的转换过程。InnoDB表基于普通索引的查找代价更高,因为每次检索到结果后,还需要至少再多检索一次才能确认是否还有更多符合条件的结果,主键索引和唯一索引就不需要这么做了。

经过测试,对万行数据的MyISAM做随机检索(整数类型),主键和唯一索引的效率基本一样,普通索引的检索效率则慢了%以上。换成InnoDB表的话,唯一索引比主键索引效率约慢9%,普通索引比主键索引约慢了%以上。

关于MySQL的方方面面大家想了解什么,可以直接留言回复,我会从中选择一些热门话题进行分享。 同时希望大家多多转发,多一些阅读量是老叶继续努力分享的绝佳助力,谢谢大家 :)

MySQL中Binary Log二进制日志文件的基本操作命令小结 MySQLBinaryLog也就是常说的bin-log,,是mysql执行改动产生的二进制日志文件,其主要作用有两个:*数据回复*主从数据库。用于slave端执行增删改,保持与master同

将MySQL查询结果按值排序的简要教程 MySQL查询结果如何排序呢?这是很多人都提过的问题,下面就教您如何对MySQL查询结果按某值排序,如果您感兴趣的话,不妨一看。之前有一个功能修改

MySQL的LEFT JOIN表连接的进阶学习教程 LEFTJOIN的主表这里所说的主表是指在连接查询里MySQL以哪个表为主进行查询。比如说在LEFTJOIN查询里,一般来说左表就是主表,但这只是经验之谈,很多

标签: mysql主键和索引

本文链接地址:https://www.jiuchutong.com/biancheng/312404.html 转载请保留说明!

上一篇:MySQL索引之聚集索引介绍(sql建立聚集索引语句)

下一篇:MySQL中Binary Log二进制日志文件的基本操作命令小结(mysql binlog详解)

  • 三公经费指的是什么
  • 减免税填到营业外收入哪一项
  • 房地产公司自用房屋销售土地增值税计算
  • 税务会计账务处理
  • 开具电费发票如何入账?
  • 公司购买股票如何做账
  • 上年多做收入今年可以直接冲减吗
  • 科技型中小微企业贷款贴息贴保项目入库申请指南
  • 报销销售部门差旅费
  • 资产处置损益包含增值税吗
  • 软件企业购进软件服务怎么入账
  • 如何根据资产负债表填写现金流量表
  • 小规模给一般纳税人开专票能抵扣吗
  • 回迁房项目的会计和税务处理
  • 退休后兼职收入需要交税吗
  • 融资融券与普通证券交易的区别体现在
  • 税务机关是否可以申请破产清算
  • 发票上的二维码可以扫金额吗
  • 轨道交通很高兴 土地税优惠来了
  • 定期定额征收适用范围
  • 多缴的社保退还给员工是否还要算个税
  • 公司所得税汇算清缴退税流程
  • 开票汇率和收汇汇率
  • 企业处理二手车增值税没交,有什么影响
  • 固定资产计提折旧的会计科目
  • 要求做前两年的核酸检测
  • 个人缴纳公积金有什么好处
  • 路由器死机的表现
  • 电脑开机无法启动怎么解决
  • win10应用显示模糊发虚
  • php删除数组中的某个值
  • linux -e -f
  • 收到客户预付的保费90000元,存入银行
  • php新手入门
  • 行政事业单位会计科目一览表
  • 矿产资源补偿费征收管理规定
  • javascript基础语法
  • 若依框架和jeesite
  • 报销差旅费退回余款填什么凭证
  • php 自动化测试
  • esp8266 dht22
  • atq命令 显示用户待执行任务列表
  • 残保金补申报后处罚会自动取消吗
  • 社保费用可以提前从工资扣吗
  • 业务出差餐费如何记账
  • 个人代扣代缴社保分录
  • 印花税是根据销售收入申报吗
  • 受雇于两家公司补税怎么算
  • 以前年度损益调整怎么结转
  • 销售旧固定资产开票编码
  • 办公室租赁费摊销分录
  • 报销餐费增值税进项税计入什么科目
  • 财产清查怎么做分录
  • 消费税出口退税吗
  • 成本暂估入帐如何做分录
  • 财务票子怎么粘
  • 公司增资需要哪些材料
  • 年终建账于年初建账,在录入期初余额时有什么不一样?
  • mysql 5.6 5.7
  • sqlserver批量执行sql脚本
  • Windows Server 2003系统进程中NETWORK SERVICE相关知识详解
  • 如何确定我的学生学到了问题,尤其是核心素养方面
  • arm和x86性能差多少
  • quickres.exe - quickres是什么进程 作用是什么
  • exe是什么进程
  • 东芝笔记本配件
  • win7睡眠设置在哪
  • win10系统出现蓝屏
  • win8.1系统要求配置
  • easyui给下拉框赋值
  • 支持google play
  • css新闻页面制作
  • cmd新建
  • shell脚本clear
  • document.write与writeln的输出内容区别说明
  • 用js实现类的方法
  • 备份系统apk
  • 河北新农合怎么查询
  • 江西税务登记证查询官网
  • 新疆哪个城市最有发展前景
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设