mysql設計簡單數據庫設計(設計一個簡單的數據庫)

本文目錄一覽:

如何利用mysql設計網站數據庫

簡單用戶表 tb_user:

userid , username

用戶詳細信息表 tb_userinfo

userid , email , homepage , phone , address

把用戶信息分開的目的就是保證經常查詢的數據在一張表,其它信息放到另一張表

論壇主題表 tb_bbs

bbsid , userid , title , ip , repleycount , replyuserid , createtime , lastreplytime

論壇內容標 tb_bbs_content (此表可按照bbsid進行分表存儲)

bbsid , content;

論壇回復表 tb_bbs_reply (此表可按照bbsid進行分表存儲)

replyid , bbsid , userid , content , replytime , ip

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字節

Mysql數據庫設計

簡單用戶表 tb_user:

userid , username

用戶詳細信息表 tb_userinfo

userid , email , homepage , phone , address

把用戶信息分開的目的就是保證經常查詢的數據在一張表,其它信息放到另一張表

論壇主題表 tb_bbs

bbsid , userid , title , ip , repleycount , replyuserid , createtime , lastreplytime

論壇內容標 tb_bbs_content (此表可按照bbsid進行分表存儲)

bbsid , content;

論壇回復表 tb_bbs_reply (此表可按照bbsid進行分表存儲)

replyid , bbsid , userid , content , replytime , ip

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

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

相關推薦

  • 如何修改mysql的端口號

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

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

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

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

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

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

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 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
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28

發表回復

登錄後才能評論