mysql數據庫設計文檔模板(mysql生成數據庫文檔)

本文目錄一覽:

數據庫設計(MySQL)

id字段需要細化,用戶ID,作品ID,作者ID;類型表不需要;用戶表和管理員表可以合併,添加是否為管理員的判定字段;文學經典表和戲曲文化表可以合併為作品表,用type做區分即可;留言和收藏可以單獨做兩個表,按時間順序記錄,其中字段需要關聯到相對應的其他表的ID;

急需MySql數據庫設計規範

1. 數據表命名規範

模塊名縮寫_存儲信息[_存儲信息子類](多個單詞用下劃線分隔),全部小寫,例如:b2c_goods_type

2. 字段命名規範

存儲信息屬性(多個單詞用下劃線分隔),全部小寫,命名規則只來自於業務,盡量表達出列的含義。

例如:goods_id

3. 字段類型規範。

規則:用盡量少的存儲空間來存 數一個字段的數據.

比如能用int的就不用char或者varchar

能用tinyint的就不用int

能用 varchar(20)的就不用varchar(255)

時間戳字段盡量用int型,如 created:表示從 ‘1970-01-01?08:00:00’開始的int秒數,採用英文單詞的過去式;gmtCreated:表示datetime類型的時間,即形如 ‘1980-01-01?00:00:00’的時間串,Java中對應的類型為Timestamp

日期:用date

時間:用time

數字格式的用:int、tinyint、mediumint、smallint、bigint根據實際情況選擇

字符串:用char、varcahr;

文本:用text

金額:用float

MYSQL數據庫的物理設計都包括哪些內容,怎麼設計?

Log File物理結構

從 ib_logfile0和 ib_logfile1這兩個文件的物理結構可以看出,在Log Header部分還是有些許差異的, ib_logfile0會多一些額外的信息,主要是checkpoint信息。

並且每個Block的單位是512字節,對應到磁盤每個扇區也是512字節,因此redo log寫磁盤是原子寫,保證能夠寫成功,而不像index page一樣需要double write來保證安全寫入。

我們依次從上到下來看每個Block的結構

Log File Header Block

Log Goup ID,可能會配置多個redo組,每個組對應一個id,當前都是0,佔用4字節

Start LSN,這個redo log文件開始日誌的lsn,佔用8字節

Log File Number,總是為0,佔用4字節

Created By,備份程序所佔用的字節數,佔用32字節

另外在ib_logfile0中會有兩個checkpoint block,分別是 LOG_CHECKPOINT_1/ LOG_CHECKPOINT_2,兩個記錄InnoDB Checkpoint信息的字段,分別從文件頭的第二個和第四個block開始記錄,並且只在每組log的第一個文件中存在,組內其他文件雖然沒有checkpoint相關信息,但是也會預留相應的空間出來。這裡為什麼有兩個checkpoint的呢?原因是設計為交替寫入,避免因為介質失敗而導致無法找到可用的checkpoint的情況。

Log blocks

請點擊輸入圖片描述

log block結構分為日誌頭段、日誌記錄、日誌尾部

Block Header,佔用12字節

Data部分

Block tailer,佔用4字節

Block Header

這個部分是每個Block的頭部,主要記錄的塊的信息

Block Number,表示這是第幾個block,佔用4字節,是通過LSN計算得來的,佔用4字節

Block data len,表示該block中有多少字節已經被使用了,佔用2字節

First Rec offet,表示該block中作為第一個新的mtr開始的偏移量,佔用2字節

Checkpoint number,表示該log block最後被寫入時的檢查點的值,佔用4字節

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/256752.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:42
下一篇 2024-12-15 12:42

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29
  • 心形照片拼圖模板

    如何使用心形照片拼圖模板 一、模板介紹 心形照片拼圖模板是一種讓用戶可以將自己的照片拼接成一個心形的巧妙設計,每個照片都是一個拼圖塊,當所有的照片配合完成時,呈現出一個完整的心形。…

    編程 2025-04-29
  • 使用Spire.PDF進行PDF文檔處理

    Spire.PDF是一款C#的PDF庫,它可以幫助開發者快速、簡便地處理PDF文檔。本篇文章將會介紹Spire.PDF庫的一些基本用法和常見功能。 一、PDF文檔創建 創建PDF文…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • 數據庫第三範式會有刪除插入異常

    如果沒有正確設計數據庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係數據庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的數據庫存儲引擎

    本文將介紹兩款高性能的數據庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python爬蟲文檔報告

    本文將從多個方面介紹Python爬蟲文檔的相關內容,包括:爬蟲基礎知識、爬蟲框架及常用庫、爬蟲實戰等。 一、爬蟲基礎知識 1、爬蟲的定義: 爬蟲是一種自動化程序,通過模擬人的行為在…

    編程 2025-04-28

發表回復

登錄後才能評論