位置: 编程技术 - 正文

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

发布时间:2024-02-26

推荐整理分享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) 错误的解决办法

  • 水利建设基金怎么交
  • 用现金支付的没有发票怎么办
  • 建筑业资源税如何缴纳
  • 金蝶标准版如何结转到下月
  • 网银年费怎么做会计分录的
  • 企业人员信息已存在无需新增
  • 单式记账法可以进行试算平衡吗
  • 总分机构移送固定资产是否缴增值税
  • 商品房预售期一般多久
  • 退税降低
  • 银行取现怎么取
  • 小规模公司可以贷款吗
  • 企业所得税税前扣除政策
  • 外省农村户口可以迁到外省农村吗
  • 红字发票信息表可以撤销吗
  • 个人所得税工资和实际工资对不上
  • 税务会计核算范围
  • 汇算清缴时多缴的企业所得税怎么做会计分录
  • 现金流量净额为负说明什么
  • 生产车间广告牌设计图片
  • 对子公司计提减值准备影响合并利润吗
  • 集体福利是否可以抵税
  • 如何开锅
  • 小规模自开专票税率是1%还是3%
  • 财产转移数据缴费怎么交
  • 出让和转让的有何区别
  • 高新企业奖励补贴交税吗
  • 旅行社小规模差额征税增值税申报表怎么填
  • 冲暂估怎么做分录
  • 股权出售是利空还是利好
  • 出口退税怎么申报个税
  • 销售预付款会计分录
  • bios相关概念
  • 天然气 初装费
  • Honeybee flying over crocuses in the Tatra Mountains, Poland (© Mirek Kijewski/Getty Images)
  • 构造二叉排序树代码
  • element-ui 表格
  • 旅游业发票的税率是多少
  • python dayup
  • 农业合作社需要纳税吗
  • 管理费用只能在借方吗
  • 制造行业结转成本
  • 模板的固定
  • 企业所得税固定资产的计税基础
  • mysql5.5创建用户
  • 房租押金可以要回来吗
  • 存货减值税前可抵扣吗
  • 非税收入票据存根的保存期限一般为多少年
  • 逾龄资产对企业的影响
  • 个体户如何填报工商年报资金数额
  • 用货款抵扣供应商成本
  • 交易性金融资产公允价值变动怎么算
  • 生产企业支付的房租怎么入账
  • 库存商品建账
  • 购买原材料时发生的不可抵扣的增值税额
  • 未开票收入下月开票会计分录
  • 购买服装费用计入什么科目
  • 建账的要点及应注意的问题
  • windows内存诊断工具检测到硬件问题怎么办
  • WinXP系统VPN连接经常性自动断开的4个解决方法
  • 轻轻松松在树枝上摘果子用什么成语
  • ubuntu怎样
  • win10无internet怎么办
  • win10预览版和正式版
  • 误删windows
  • 笔记本w8系统怎么取消开机密码
  • win8杀毒软件关闭
  • cocos2d怎么用
  • java guns框架
  • jQuery ajax的功能实现方法详解
  • UNITY gameobject代码中setacvtive(false)与面板中直接去掉勾 效果不一样
  • 不想让浏览器运行
  • 税务管理职责
  • 怎么知道自己的城乡属性
  • 中山市国家税务总局阜沙分局局长杨兴华
  • 技术进出口指什么技术
  • “老师你好”
  • 尾矿治理文件
  • 2013年山西高考作文
  • 税务稽查工作底稿属于什么证据
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号