首頁 資料庫 mysql教程 自增序列产生器的实现思路_MySQL

自增序列产生器的实现思路_MySQL

Jun 01, 2016 pm 01:42 PM
u 資料庫表

bitsCN.com
自增序列产生器的实现思路 l   需求u  实现MySQL自带的字段值自动增长等效的功能;u  同一应用集群中数据库表的自增类型字段值具有全局唯一性;u  支持数据库级别的水平拆分表,同时还需要支持数据库内部的水平拆分表,其ID值都来源于同一条配置记录;    l   存储设计序列产生器配置表increment_config结构:列名称 数据类型 是否为空 默认值 是否自增 主键/索引 备注ID INT UNSIGNED N AUTO_INCREMENT PRIMARY KEY(ID) 唯一标示,无意义TABLE_NAME VARCHAR(40) N UNIQUE INDEX 表名称TABLE_TOTAL TINYINT UNSIGNED N 0 标记数据库内分表的数量COLUMN_NAME VARCHAR(40) N 字段名称START_VALUE BIGINT UNSIGNED N 1 开始值OFFSET_VALUE SMALLINT UNSIGNED N 10000 增长的步长FLAG TINYINT N 0 0–正常;1–作废值GMT_MODIFIED TIMESTAMP N 数据库自动更新此值
 备注:1>. GMT_MODIFIED不由程序或人为主动去负责更新与填写,而是通过数据库的特性自动填写与更新;2>. 对于数据库内部的水平分表,即TABLE_TOTAL0,则通过TABLE_NAME+TABLE_TOTAL组合区分;l   对存储表的操作    u  初始化的 SQL对于需要用到序列产生器的表,则在此配置表中增加一条记录,例如:INSERT INTO(TABLE_NAME,TABLE_TOTAL,COLUMN_NAME,START_VALUE,OFFSET_VALUE,FLAG)VALUES(‘msg_’,23, ’MSG_ID’,1,10000,0);u  序列生成器操作的 SQL程序每次获得序列区间段,以及更新相关数据值操作的事务的过程SQL,假设msg_系列表对应的记录,在配置表中ID=1。START  TRNSACTION;SELECT  ID, TABLE_NAME,COLUMN_NAME,START_VALUE,START_VALUE+OFFSET_VALUE AS END_VALUEFROM  increment_config  WHERE ID=1 FOR UPDATE;UPDATE  increment_config  SET  START_VALUE=START_VALUE+OFFSET_VALUE WHERE  ID=1;COMMIT;l   程序实现建议u  为提供序列产生的速度,而提高业务处理的性能。程序需要以拿序列区间的方式实现,而不是每次需要的时候,都要去数据库获得序列号值;u  程序在每次启动的时候,要初始化配置表中所有有效记录的序列区间值;u  当程序拿到的区间值START_VALUE,经过一段时间使用后达到:START_VALUE=END_VALUE,处理步骤如下:    1>. 挂起当前的序列调用请求;2>. 做序列区间值获取的事务;3>. 把新获得区间值的START_VALUE,给予挂起的调用请求;总结:每个区间值的最大值(END_VALUE)始终作为当前期间的弃用值。   作者 snoopy7713 bitsCN.com

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
仰望U9:中國電動超級跑車的新寵 仰望U9:中國電動超級跑車的新寵 Oct 13, 2023 pm 03:37 PM

在汽車電氣化時代的推動下,中國國產汽車製造商積極參與了電動超跑的生產。最近,廣汽埃安旗下的高端電動品牌昊鉑推出了一款名為SSR的電動超跑,而此前,比亞迪的仰望U9也受到了廣泛關注近日,有一段視頻在網絡上流傳,據稱是仰望U9的測試影片。影片中,一輛仰望U9在賽道上飛速行駛,令人驚訝的是,車輛的煞車碟盤閃爍著明亮的橘色光芒,看起來就像是在進行勒芒24小時耐力賽一樣。尤其引人注目的是前輪煞車碟盤的亮度至少是後輪的兩倍。然而,無法從影片中確定這閃爍光亮是煞車碟盤在煞車時產生的火光,還是車輛配備的燈光效果。盡

win7數字鍵盤u變成4如何解決 win7數字鍵盤u變成4如何解決 Jul 14, 2023 am 08:49 AM

當一些Win7筆記型電腦客戶使用數字鍵盤時,他們會遇到打字u但變成4的原因。發生什麼事?事實上,這是因為你的筆記型電腦將鍵盤整合到字母鍵中。你只需關閉鍵盤就可以解決這個問題。具體步驟如下:FN+nunlock鍵轉換可以正常輸入英文字母。如果客戶遇到按I變為5,也可以使用此方法。如何解決win7數字鍵盤u變成4:1.為了更好的方便,筆記型電腦沒有小鍵盤區域。因此,有一些按鍵可以界定數字鍵盤的功能。可以使用FN+nunlock鍵進行轉換。有些必須用shift+numlock輸入英文或資料。 2.小​​鍵盤-

如何使用PHP建立和管理資料庫表 如何使用PHP建立和管理資料庫表 Sep 09, 2023 pm 04:48 PM

如何使用PHP創建和管理資料庫表隨著互聯網的迅速發展,資料庫成為了各種網站和應用程式不可或缺的組成部分。在PHP中,我們可以利用資料庫管理系統(DBMS)如MySQL來建立和管理資料庫表。本文將教你如何使用PHP來實現這項功能,並附上對應的程式碼範例。連接資料庫首先,我們需要在PHP中連接到資料庫。可以使用PHP提供的mysqli擴充或PDO來實現這項功能。

okx交易平台手續費一覽 okx交易平台手續費一覽 Feb 15, 2025 pm 03:09 PM

OKX 交易平台提供了各種類型的費率,包括交易費用、提款費用和融資費用。對於現貨交易,交易費用根據交易量和 VIP 等級而有所不同,採取“做市商模式”,即市場每筆交易收取較低的手續費。此外,OKX 還提供了多種類型的期貨合約,包括幣本位合約、USDT 合約和交割合約,每種合約的費用結構也有所不同。

資料庫視圖和表格有哪些區別 資料庫視圖和表格有哪些區別 Sep 04, 2023 pm 03:13 PM

資料庫檢視和表格的差異有:1、表格是資料庫中用來儲存資料的實體結構,而檢視只是基於資料表或多個資料表的查詢結果集;2、資料表是資料的實體儲存單元,檢視只是提供了查看和操作表資料的規則;3、視圖為資料庫提供進階的安全機制,表沒有安全機制;4、視圖是表的抽象;5、視圖可查詢中組合多個表,表只能查詢單一表; 6.表格是資料庫中的永久性結構,視圖不是;7、視圖可建立相同名稱的視圖,表格不能建立同名表格等等。

虛擬貨幣是什麼貨幣?在哪裡購買? 虛擬貨幣是什麼貨幣?在哪裡購買? Mar 04, 2025 pm 05:42 PM

文章介紹虛擬貨幣是依賴密碼學、通過點對點網絡交易的數字或虛擬貨幣形式,列舉比特幣等常見幣種。說明通常可在加密貨幣交易所如 Coinbase 等購買,各交易所有優劣。著重強調購買虛擬貨幣風險高,價格波動大且易遭詐騙、黑客攻擊,提醒投資前充分研究,只投能承受損失的資金,信息僅供參考,非投資建議。

如何安裝用友U8Win10:簡易教學 如何安裝用友U8Win10:簡易教學 Jan 09, 2024 pm 02:01 PM

我們在使用win10作業系統的時候,有的小夥伴因為工作需要要在電腦上用友u8但是不知道怎麼操作,對於這個問題小編覺得我們可以在網上先下載用友u8,然後通過在電腦的屬性中進行相應的設置,例如計算機名稱的更改、註冊表的修改等等即可。具體詳細步驟就來看下小編是怎麼做的吧~用友u8win10安裝教程步驟一:1、在「此電腦」圖標,選擇「屬性」;2、在電腦名稱、域和工作組設定下點擊更改設定按鈕:3、在「電腦名稱」頁籤點擊,在電腦名稱匡總輸入需要修改的名稱(8位元以內的英文字母,不包含標點符號特殊符號);4、

資料庫視圖和表格怎麼區分 資料庫視圖和表格怎麼區分 Aug 22, 2023 am 11:27 AM

資料庫視圖和表格是資料庫中的兩個不同的概念,有著不同的功能和用途,表是資料庫中真正儲存資料的實體,而視圖是從一個或多個表中導出的虛擬表,用於以特定的方式呈現和操作數據。表格具有更高的資料持久性,而視圖則提供了更靈活和便捷的資料存取方式。

See all articles