ホームページ データベース 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 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

win7のテンキーキーボードが4に変更される問題を解決する方法 win7のテンキーキーボードが4に変更される問題を解決する方法 Jul 14, 2023 am 08:49 AM

Win7 ラップトップの一部のお客様がテンキーを使用する場合、u を入力しても 4 になってしまうという問題に遭遇します。何が起きましたか?実際、これはラップトップのキーボードが文字キーに統合されているためです。この問題は、キーボードを閉じるだけで解決できます。具体的な手順は以下の通りです。 FN+nunlockキーの変換で英文字を正常に入力できます。この方法は、顧客が 5 に変更するために I を押した場合にも使用できます。 win7 テンキー u が 4:1 になる問題の解決方法 利便性を高めるために、ラップトップには小さなキーボード領域がありません。したがって、テンキーの機能を定義するキーがあります。 FN+nunlockキーを使用して変換できます。英語やデータを入力するには、shift+numlock を使用する必要がある人もいます。 2.テンキー-

U9に期待:中国の新たな人気電気スーパーカー U9に期待:中国の新たな人気電気スーパーカー Oct 13, 2023 pm 03:37 PM

自動車電動化の時代を牽引し、中国国内の自動車メーカーは電動スーパーカーの生産に積極的に取り組んでいる。最近、広汽愛安傘下のハイエンド電気ブランド「Haopin」が「SSR」と呼ばれる電気スーパーカーを発売し、以前はBYDの「Yangwang U9」も広く注目を集めたが、最近ではYangwang.U9のテストビデオを映したとされる動画がインターネット上で拡散した。動画ではU9がコース上を疾走しており、なんとその車両のブレーキディスクが明るいオレンジ色に光り、まるでル・マン24時間レースに出場しているかのようだ。特に印象的なのは、前輪のブレーキ ディスクが後輪のブレーキ ディスクの少なくとも 2 倍明るいという事実です。しかし、ビデオからは、この閃光が制動中にブレーキディスクから発生する炎によって引き起こされているのか、それとも車両の照明効果によるものなのかを判断することはできません。排気

仮想通貨はどの通貨ですか?どこで購入しますか? 仮想通貨はどの通貨ですか?どこで購入しますか? Mar 04, 2025 pm 05:42 PM

この記事では、仮想通貨は暗号化やピアツーピアネットワークを介して取引に依存しているデジタル通貨または仮想通貨フォームであり、ビットコインなどの一般的な通貨をリストしていることを紹介します。通常、Coinbaseなどの暗号通貨交換、および各トランザクションのすべての利点と短所で利用できます。仮想通貨の購入は大きく、詐欺とハッキングを行う傾向があります。

OKXトレーディングプラットフォームの取り扱い料金のリスト OKXトレーディングプラットフォームの取り扱い料金のリスト Feb 15, 2025 pm 03:09 PM

OKXトレーディングプラットフォームは、取引手数料、引き出し料金、資金調達料金など、さまざまな料金を提供しています。スポットトランザクションの場合、取引手数料はトランザクションのボリュームとVIPレベルによって異なり、「マーケットメーカーモデル」を採用します。つまり、市場はトランザクションごとに低いハンドリング料金を請求します。さらに、OKXは、通貨標準契約、USDT契約、配送契約など、さまざまな先物契約も提供しており、各契約の料金構造も異なります。

UFIDA U8Win10 のインストール方法: 簡単なチュートリアル UFIDA U8Win10 のインストール方法: 簡単なチュートリアル Jan 09, 2024 pm 02:01 PM

Win10 オペレーティング システムを使用している場合、仕事の関係で PC で UF u8 を使用する必要があるが、操作方法がわからないという友人がいます。この問題について、編集者は、まず UF u8 をオンラインでダウンロードしてから、次の手順に進むことができると考えています。コンピューターのプロパティから、コンピューター名の変更やレジストリの変更など、対応する設定を行うだけです。特定の詳細な手順についてエディターがどのように実行したかを見てみましょう~ UFIDA u8win10 インストール チュートリアルのステップ 1: 1. 「このコンピュータ」アイコンで、「プロパティ」を選択します; 2. コンピュータ名、ドメイン、およびワークグループの下で [変更] をクリックします設定 設定ボタン: 3.「コンピュータ名」タブをクリックし、コンピュータ名フィールドに変更する必要がある名前を入力します(句読点と特殊記号を除く8桁以内の英字)。

データベースのビューとテーブルを区別する方法 データベースのビューとテーブルを区別する方法 Aug 22, 2023 am 11:27 AM

データベース ビューとテーブルは、データベースにおける 2 つの異なる概念であり、特性と用途が異なります。テーブルは実際にデータベースにデータを格納するエンティティであり、ビューは 1 つ以上のテーブルから派生した仮想テーブルであり、データの保存方法を指定するために使用されます。データを提示して操作します。テーブルはデータの永続性が高く、ビューはより柔軟で便利なデータ アクセスを提供します。

PHP を使用してデータベーステーブルを作成および管理する方法 PHP を使用してデータベーステーブルを作成および管理する方法 Sep 09, 2023 pm 04:48 PM

PHP を使用してデータベース テーブルを作成および管理する方法 インターネットの急速な発展に伴い、データベースはさまざまな Web サイトやアプリケーションに不可欠な部分になりました。 PHP では、MySQL などのデータベース管理システム (DBMS) を使用してデータベース テーブルを作成および管理できます。この記事では、PHP を使用してこの関数を実装する方法と、対応するコード例を説明します。データベースに接続する まず、PHP でデータベースに接続する必要があります。この機能を実現するには、mysqli 拡張機能または PHP によって提供される PDO を使用できます。

データベースビューとテーブルの違いは何ですか? データベースビューとテーブルの違いは何ですか? Sep 04, 2023 pm 03:13 PM

データベース ビューとテーブルの違いは次のとおりです: 1. テーブルはデータベースにデータを格納するために使用される物理構造ですが、ビューは 1 つまたは複数のテーブルに基づく単なるクエリ結果セットです; 2. テーブルは物理的なストレージですビューはデータの単位であり、ビューはテーブル データの表示と操作のためのルールのみを提供します; 3. ビューはデータベースに高度なセキュリティ メカニズムを提供しますが、テーブルにはセキュリティ メカニズムはありません; 4. ビューはテーブルの抽象化です; 5. ビューは複数を組み合わせることができますクエリ内のテーブル、およびテーブルは単一のテーブルのみをクエリできる; 6. テーブルはデータベース内の永続的な構造ですが、ビューはそうではありません; 7. ビューは同じ名前のビューを作成できますが、テーブルは同じ名前のテーブルを作成できません。

See all articles