位置: 编程技术 - 正文

MySQL分表自增ID问题的解决方法(mysql分表命令)

编辑:rootadmin

推荐整理分享MySQL分表自增ID问题的解决方法(mysql分表命令),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql分表实现,mysql分表的3种方法,mysql分表命令,mysql分表语句,mysql innodb 分表,mysql增加表分区,mysql分表的3种方法,mysql分表语句,内容如对您有帮助,希望把文章链接给更多的朋友!

当我们对MySQL进行分表操作后,将不能依赖MySQL的自动增量来产生唯一ID了,因为数据已经分散到多个表中。   应尽量避免使用自增IP来做为主键,为数据库分表操作带来极大的不便。 在postgreSQL、oracle、db2数据库中有一个特殊的特性---sequence。 任何时候数据库可以根据当前表中的记录数大小和步长来获取到该表下一条记录数。然而,MySQL是没有这种序列对象的。 可以通过下面的方法来实现sequence特性产生唯一ID:

1. 通过MySQL表生成ID 对于插入也就是insert操作,首先就是获取唯一的id了,就需要一个表来专门创建id,插入一条记录,并获取最后插入的ID。代码如下:

MySQL分表自增ID问题的解决方法(mysql分表命令)

也就是说,当我们需要插入数据的时候,必须由这个表来产生id值,我的php代码的方法如下:

这种方法效果很好,但是在高并发情况下,MySQL的AUTO_INCREMENT将导致整个数据库慢。如果存在自增字段,MySQL会维护一个自增 锁,innodb会在内存里保存一个计数器来记录auto_increment值,当插入一个新行数据时,就会用一个表锁来锁住这个计数器,直到插入结 束。如果是一行一行的插入是没有问题的,但是在高并发情况下,那就悲催了,表锁会引起SQL阻塞,极大的影响性能,还可能会达到 max_connections值。 innodb_autoinc_lock_mode:可以设定3个值:0、1、2 0:traditonal (每次都会产生表锁) 1:consecutive (默认,可预判行数时使用新方式,不可时使用表锁,对于simple insert会获得批量的锁,保证连续插入) 2:interleaved (不会锁表,来一个处理一个,并发最高) 对于myisam表引擎是traditional,每次都会进行表锁的。

2. 通过redis生成ID

3. 队列方式 其实这也算是上面的一个解说 使用队列服务,如redis、memcacheq等等,将一定量的ID预分配在一个队列里,每次插入操作,先从队列中获取一个ID,若插入失败的话,将该ID再次添加到队列中,同时监控队列数量,当小于阀值时,自动向队列中添加元素。 这种方式可以有规划的对ID进行分配,还会带来经济效应,比如QQ号码,各种靓号,明码标价。如网站的userid, 允许uid登陆,推出各种靓号,明码标价,对于普通的ID打乱后再随机分配。

监控队列数量,并自动补充队列和取到id但并没有使用

标签: mysql分表命令

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

上一篇:win2008 R2 WEB环境配置之MYSQL 5.6.22安装版安装配置方法(windows web server 2008)

下一篇:MySQL ERROR 1045 (28000) 错误的解决办法

  • 小规模暂估入库的账务处理
  • 增值税发票抵扣勾选平台
  • 年末为什么要结转应付现金股利
  • 发票没有纳税人识别号能开吗
  • 个税申报填写的工资是应发还是实发
  • 自然人生产经营所得,如何计算个税
  • 买二手设备还需要备案吗
  • 发票批量作废怎么操作的
  • 滴滴的发票能不能作废
  • 弥补以前年度亏损从哪里取数
  • 国外包裹退回费用
  • 母子公司间提供保洁保安合法吗
  • 存货的计价方法及公式
  • 资产负债表的资产方能够提供的信息包括
  • 车间停产期间设施有哪些
  • 厂开办期间的工作有哪些
  • 采用审计软件有什么优缺点
  • 个人独资企业是什么意思
  • 员工探亲路费报销交个税吗
  • 企业固定资产清单表格
  • 出口退税系统怎么导入数据
  • 购买厂房可以一次买卖吗
  • 企业增加的留存收益计入
  • 缴纳社保的账务处理办法
  • 股东投入的资金可以计入资本公积吗
  • 我想看一下这个月几日
  • 加速折旧法和直线折旧法的区别
  • 华为mate刷机能刷用户锁吗
  • win10 5月更新已知bug
  • 公司借银行款会计分录
  • win11粘滞键怎么关闭 重启后又有
  • 公司准备上市到真正上市要多久
  • sgbhp.exe - sgbhp是什么进程 有什么用
  • 免征增值税的跨境服务
  • 银行卡账户年费是什么意思 为什么扣我银行卡的钱
  • 应收账款融资的风险控制
  • 不动产售后回租如何处理
  • crontab不执行的原因和解决方案
  • 建设工程劳务分包合同属于建设工程合同吗
  • 结霜的早晨
  • django cookie
  • php下载远程文件到服务器
  • 删除数组中某个值的数
  • 什么是长期应付票据
  • php屏蔽ip
  • vue网上商城项目
  • 模具固定资产如何核算
  • 会计科目设置怎么操作
  • sql server功能介绍
  • pos机到账流水算个人收入吗
  • 装卸搬运服务属于劳务吗
  • 三免三减半如何申报
  • 购进运输服务取得的成果
  • 付款人和开票人必须相符吗
  • 生产成本明细科目有哪些内容
  • 运输途中的合理损耗计入入账价值
  • 加计扣除适用于什么企业
  • 免租期租金可以追回吗
  • 其他非流动资产减少的原因
  • 产品质量问题有赔偿吗
  • 留抵税额和待抵扣进项税额区别
  • 用友t6生成常用凭证
  • 企业会计账簿设计的原则
  • pd虚拟机安装安卓系统
  • rapapp.exe - rapapp是什么进程 有何作用
  • win10修复dllregisterserver
  • win8.1桌面图标消失
  • Win8出现奇怪爆音的完美解决方法
  • cocos2djs教程
  • onclick和onclientclick
  • perfcurve函数
  • jquery获取数据
  • python文本
  • jq 使用
  • android:thumb
  • 医保已申报未缴费可以撤销申报吗
  • 电子税务局申领的发票怎么读入
  • 重庆地税局官网公众号
  • 电子税务局在线咨询
  • 环保职责及管理范围
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设