首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql为什么建议使用主键

我们都知道表的主键一般都要使用 id,不建议使用业务 id ,是因为使用 id 可以避免页分裂。这个其实可以相当于一个结论,你都可以直接记住这个结论就可以了。...如果主键为自 id 的话,mysql 在写满一个数据页的时候,直接申请另一个新数据页接着写就可以了。...如果主键是非自 id,为了确保索引有序,mysql 就需要将每次插入的数据都放到合适的位置上。...其实对主键 id 还有一个小小的要求,在满足业务需求的情况下,尽量使用占空间更小的主键 id,因为普通索引的叶子节点上保存的是主键 id 的值,如果主键 id 占空间较大的话,那将会成倍增加 mysql...本来这篇文章是打算总结一下前面写的几篇关于 mysql 索引的文章的,也是打算多举几个例子的,结果发现光写了一个自主键就写了一大堆了,然后时间也比较晚了,干脆就写到这吧,原本计划的几个其他例子后面再单独写吧

4.9K31
您找到你想要的搜索结果了吗?
是的
没有找到

使用NSX高级负载均衡度量值水平扩缩(HPA)容器实例

序 承接上一篇, 使用NSX高级负载均衡(以下简称ALB)度量值触发后端虚拟机池水平扩缩, 本篇讲讲容器环境中使用ALB度量值触发容器的水平扩缩(HPA: Horizontal Pod Autoscaler...那么我们的思路就变成了, 如果使用Prometheus将抓取的ALB度量值暴露到K8s的custom.metrics中去, 让HPA V2beta2查询到....ALB承担K8s集群负载均衡(LB)和服务入口(Ingress) ALB默认对服务引擎(SE)进行度量值采样, 并以Prometheus格式暴露 ALB设置为基本认证模式, 方便Prometheus使用用户名密码认证后抓取度量值...让业务应用自己输出度量值(兼容Prometheus格式)也许对于研发来说并不是难事, 也许是我站着说话不腰疼. 总体来说暴露什么样的度量值和怎么使用都需要系统的规划, 对于运维体系来说事情可大可小....当然了由业务应用汇报度量值又可以更为灵活, 可以匹配业务逻辑. 可以综合使用, 比如水平扩缩采用负载均衡汇报的度量值, 业务运维统计则使用App开发时定制的度量值, 相得益彰.

72310

Mysql为何建议使用id作主键,有什么优点

基于上面的索引维护过程说明,我们来讨论一个案例: 你可能在一些建表规范里面见到过类似的描述,要求建表语句里一定要有自主键。...当然事无绝对,我们来分析一下哪些场景下应该使用主键,而哪些场景下不应该。...这时候我们就要优先考虑上一段提到的“尽量使用主键查询”原则,直接将这个索引设置为主键,可以避免每次查询需要搜索两棵树。...InnoDB使用的是聚簇索引,将主键组织到一棵B+树中,而行数据就储存在叶子节点上,若使用"where id = xxx"这样的条件查找主键,则按照B+树的检索算法便可查找到对应的叶节点,以后得到行数据...第二步使用主键在主索引B+树种再执行一次B+树检索操做,最终到达叶子节点便可获取整行数据。

1.9K30

InnoDB引擎为什么推荐使用ID作为主键?

id 可以保证每次插入时B+索引是从右边扩展的,可以避免B+树频繁合并和分裂(对比使用UUID而言)。如果使用字符串主键和随机主键,会使得数据随机插入,效率比较差。...InnoDB使用聚集索引,数据记录本身被存于主索引(一颗B+树)的叶子节点上。...如果表使用主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。如下图所示: 这样就会形成一个紧凑的索引结构,近似顺序填满。...如果使用非自主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新纪录都要被插到现有索引页的中间某个位置: 此时MySQL不得不为了将新记录插到合适位置而移动数据,甚至目标页面可能已经被回写到磁盘上而从缓存中清掉...因此,只要可以,请尽量在InnoDB上采用自字段做主键。 ◆ 二、尽量使用更小的主键 在满足业务需求的情况下,尽量使用占空间更小的主键。

3.2K30

在数据仓库建模时,应该使用哪种数据类型的度量值

在数据仓库建模中,很重要的模型就是星型模型,在星型模型中我们将表分为维度表和事实表,事实表中存放的可以进行计算(汇总,平均等)的列就是度量值。...要进行计算的度量值,可以选择的数据类型也有好多种,那么我们应该选择哪一种呢? 首先定个大的方向,是整数还是小数?...如果我们的度量值不是金额,而是其他含义的值,而且精度也不会超过4位小数(比如面积、长度、重量等),那么还是否可以使用money类型呢?...如果对于只保留2位小数的度量值,我们可以使用decimal(xx,2)来存储,前面的值根据数据量和数据值的大小来取,我一般写成decimal(18,2)。...Decimal的运算性能不如money,但是差距也不是那么的明显,在无法预期的对度量值的运算的情况下,使用decimal更保险。

66930

MySQL自主键id重启后重复使用问题解析

如果在此过程中删除部分数据,那么MySQL重启后再插入数据,自主键ID是否会重复使用呢?本文将通过具体示例,解析MySQL自主键id在重启后是否重复使用的问题。...四、原理解析 MySQL的自主键id重启后为什么没有重复使用呢?...MySQL服务器重启后,会读取信息架构表中的auto_increment值,以确定下一个自id,从而避免了已经使用的id重复分配问题。...五、自主键优化策略 针对自主键id,我们还可以通过以下措施进行优化: 定期使用OPTIMIZE TABLE重建表,回收删除记录的自id 通过设置更大的自步长,使id增长缓慢 分表分库后,控制每个表的自...idIncrement,避免单表过大 vivo_tmp_xxx临时表可用于生成id,避免影响线上表自增值六、总结MySQL的自主键id在重启后不会重复使用已经删除的id,这是由其自动保存并恢复auto_increment

37510

OkHttp请求耗时统计

- 在http2版本中,一个连接上允许打开多个流,OkHttp使用StreamAllocation来作为流和连接的桥梁。...(), call, eventListener); } } ``` 05.连接开始结束监听 connectStart连接开始 OkHttp是使用Socket接口建立Tcp连接的,所以这里的连接就是指...为了在基于代理的连接上使用SSL,需要单独发送CONECT请求。 在连接过程中,无论是Socket连接失败,还是TSL/SSL握手失败,都会回调connectEnd。...代码如下所示 Eventlistener只适用于没有并发的情况,如果有多个请求并发执行我们需要使用Eventlistener. Factory来给每个请求创建一个Eventlistener。...这个mRequestId是唯一值,可以选择使用AtomicInteger自+1的方式设置id,这个使用了cas保证多线程条件下的原子性特性。

2.3K00

因为知道了Axios,使用Vue请求数据的效率暴!!!

为啥使用Axios?...安装 npm安装 直接script标签引用 ES6 import引用 全局配置 使用 发送一个最简单的GET请求 发送一个POST请求 一次合并发送多个请求 背景 JQuery时代,我们使用ajax向后台提交数据请求...Axios是基于Promise的Http客户端,可以在浏览器和node.js中使用。 为啥使用Axios?...Axios非常适合前后端数据交互,另一种请求后端数据的方式是vue-resource,vue-resource已经不再更新了,且只支持浏览器端使用,而Axios同时支持浏览器和Node端使用。...Vue开发者推荐使用更好的第三方工具,这就是Axios 安装 你可能会说,概念我知道了,第三方工具怎么在Vue中安装使用呢? emm = = 安排 ?

1.1K10

Mybatis使用generatedKey在插入数据时返回自id始终为1,自id实际返回到原对象当中的问题排查

今天在使用数据库的时候,遇到一个场景,即在插入数据完成后需要返回此数据对应的自主键id,但是在使用Mybatis中的generatedKey且确认各项配置均正确无误的情况下,每次插入成功后,返回的都是...1,而不是最新的自Id。...终于凭借着一次Debugg发现的问题,原来在使用Mabatis中的insert或者insertSelective方式插入时,如使用int insert(TestGenKey testGenKey)时,返回值...int表示的是插入操作受影响的行数,而不是指的自增长id,那么返回的自id到底去哪里了呢?...通过下面的Debugg我们知道自id返回到testGenKey的原对象中去了。 举例示范配置 数据库示例表  generator的配置文件 <?

1.5K10

新增批量DAX表达式格式化及模型和报表层度量值使用状况分析

PBI催化剂自8月份推出以来,也收到一些用户的反馈,根据这些反馈,特再次进行升级,增加两项功能:批量格式化DAX和查看PowerBI模型层及报表层的度量值使用情况。...建议最佳实践为:基础度量值,特别是简单一个函数的无需格式化,复杂度量值可格式化,扩展度量值,可使用PBI的扩展度量值功能先格式化好模板再批量生成,后期亦无需格式化。...二、PowerBI模型层及报表层的度量值使用状况分析 虽然度量值的多少,不影响数据模型的性能,笔者初始也不太认可此为刚需性功能,但实际项目中,开发的全过程,难免有一些冗余的度量值,编写后永不再使用,放着也十分碍眼...开放明细数据查看 对于PowerBI资深用户来说,直接拿汇总数据,总不如来个明细级别的数据更好用,故在报表层的度量值清单时,分出每一报表页的度量值使用情况。 ? 同时也保留了汇总表,方便快速决策。...在度量值是否存在引用关系时,使用模型层的方法访问,会优于罗老师的从模板文件中的字符串查找方法,例如某些度量值被计算表、计算列所引用,可能直接统计模板文件里的度量值互相引用准确性更高。

1.1K20
领券