mysql資料庫表設計和優化
一 mysql資料庫表設計原則
1,資料庫命名原則:英文字母,多個單詞間用下劃線'_',單詞儘量簡潔、見名知意
2,資料庫表命名原則:英文字母,多個單詞間用下劃線'_',單詞儘量簡潔、見名知意
3,資料庫表字段型別:儘量用int型,固定長度用char,使用varchar的範圍儘量貼合實際,能用tinyint就不要用int和smallint,最好給欄位設定預設值,預設值不為null;
4,資料庫表字段索引:主鍵必須設定索引,例如user_name欄位,索引名為user_name_index,索引不必設定太多
5,資料庫正規化
第一正規化:欄位值具有原子性,即欄位值不可分割
第二正規化:一個表必須有主鍵,即一行資料可以獨立區別
第三正規化:一個表中不能包含關聯表中其他非關鍵字的資訊,即不要有冗餘
二 sql優化
1,務必不要使用select * ,儘量使用limit,我們要優化的目的就是儘量不去做全表掃描
2,頻繁查詢的where子語句的條件加上索引
3,where 子語句的連線不要使用or,這樣會使引擎放棄索引,直接全表掃描
4,sql語句不要做太多關聯,最好簡單分開
相關推薦
mysql資料庫表設計和優化
一 mysql資料庫表設計原則 1,資料庫命名原則:英文字母,多個單詞間用下劃線'_',單詞儘量簡潔、見名知意 2,資料庫表命名原則:英文字母,多個單詞間用下劃線'_',單詞儘量簡潔、見名知意 3,資料庫表字段型別:儘量用int型,固定長度用char,使用varchar的
Mysql資料庫-----表記錄和欄位管理
表記錄管理 1.插入記錄(insert) 1)insert into 表名 values(值1),(值2)...; 2)insert into 表名(欄位,欄位2) values(
高效能可擴充套件 MySQL資料庫架構設計與優化
第1章 資料庫開發規範的制定 俗話說:“沒有規矩不成方圓”。這一章,我們就先來制定資料庫開發的各種規範,包括:資料庫命名規範、資料庫基本設計規範、資料庫索引設計規範、資料庫欄位設計規範、SQL開發規範以及資料庫操作規範。通過這些規範的制定可以指導並規範我們後續的開發工作,為我們以後的工作提供一個良好的基礎。.
MySQL資料庫表設計規範
用盡量少的儲存空間來儲存一個欄位的資料;例如:能使用int就不要使用varchar、char,能用varchar(16)就不要使用varchar(255);預設情況下,InnoDB引擎單一欄位索引的長度最大為767位元組,當使用UTF-8字符集,每一個字元使用3位元組儲存,在text或者varchar型別的欄
MySQL資料庫表結構設計優化技巧總結 讓你的表結構更加合理
很多人都將 資料庫設計正規化 作為資料庫表結構設計“聖經”,認為只要按照這個正規化需求設計,就能讓設計出來的表結構足夠優化,既能保證效能優異同時還能滿足擴充套件性要求。殊不知,在N年前被奉為“聖經”的資料庫設計3正規化早就已經不完全適用了。這裡我整理了一些比
mysql資料庫表結構定義檔案和儲存引擎檔案
目錄 1.表結構定義檔案: 2.儲存引擎檔案 2.1表空間檔案 2.2重做日誌檔案 3. 如何用frm檔案恢復資料庫結構 1.表結構定義檔案: *.frm 檔案是所有m
資料庫:設計、優化和備份
目錄 一、資料庫設計 1.為什麼需要資料庫設計? 2.資料庫設計的3大正規化 3.資料庫設計的步驟 4.E-R圖也稱實體-關係圖(Entity Relationship Diagram) 5.實體之間的關係 二、資料庫優化 1.select 字句中避免使用(*)
常見電商專案的資料庫表設計(MySQL版)
簡介: 目的: 電商常用功能模組的資料庫設計 常見問題的資料庫解決方案 環境: MySQL5.7 圖形客戶端,SQLyog Linux 模組: 使用者:註冊、登陸 商品:瀏覽、管理 訂單:生成、管理 倉配:庫存、管
MySQL資料庫表如何水平拆分和垂直拆分
目前很多網際網路系統都存在單表資料量過大的問題,這就降低了查詢速度,影響了客戶體驗。為了提高查詢速度,我們可以優化sql語句,優化表結構和索引,不過對那些百萬級千萬級的資料庫表,即便是優化過後,查詢速度還是滿足不了要求。這時候我們就可以通過分表降低單次查詢資料量,從而提高
python指令碼實現excel和mysql資料庫表的匯入匯出
excel到mysql資料庫表(僅支援.xlsx格式匯入): #!/usr/bin/env python #coding=utf-8 import xlrd import MySQLdb #讀取EXCEL中內容到資料庫中 wb = xlrd.open_workbook('/×.
MySQL資料庫優化——資料庫表的正規化化優化
1、表正規化化 正規化化是指資料庫設計的規範,目前說道範式化一般是指第三設計正規化。也就是要求資料表中不存在非關鍵欄位對任意候選關鍵欄位的傳遞函式依賴則符合第三正規化。 存在以下傳遞函式依賴關係: (商品名稱)->(分類)->(分類描述) 也就是說存在非關鍵欄位 “
NHibernate與MySQL資料庫互動(類和表的對映)
工具:VS2017、MySQL、SQLyog如下圖是客戶端與伺服器間的通訊流程本文就要介紹使用NHibernate與MySQL資料庫互動下篇文章準備編寫PhotonServer呼叫NHibernate·寫在前面NHibernate是一個面向.Net環境的物件到關係資料庫的對映
向MySQL資料庫表內匯入txt和csv檔案資料
本文總結了在CentOS7上使用 LOAD DATA <LOCAL> INFILE 語句向MySQL8.0資料庫匯入txt檔案和csv檔案資料的方法和遇到的錯誤。由於兩者方法一樣,就先介紹匯入txt檔案的操作和錯誤,csv的直接在最後附上命令和簡要說明。 原始資
PowerDesigner生成mysql資料庫表結構的sql建表語句時沒有comment註釋的解決方法和去掉comment註釋的解決方法
PowerDesigner生成mysql欄位comment 註釋 最近需求出了新變化,再次開始 pd 之路,卻發現很多以前熟練的操作儼然陌生, 好記性不如爛筆頭一點不假。 1. 為什麼沒有註釋 在 pdm 檢視中,預設 powerdesigner 是不會生成註釋
mysql資料庫表中刪除某一列值重複的全部行和只留一條
如果沒有加上一個中間表t,即這句話 select t.id from去掉直接寫成delete from fatie where id not in(select max(id) a.id1 from fatie a group by a.name);mysql會提示錯誤:You can't specify t
shell指令碼實現mysql資料庫表和表結構的對比
在專案維護和開發中,經常需要知道兩個資料庫之間有哪些差異,如兩個資料庫中資料表有什麼不同(表的名稱,數量),相同的表字段是否相同(欄位數目,約束,欄位型別,大小等),有各種資料庫管理工具可以實現這一點,但是別人的東西用起來總是沒有自己的順手(比如有的工具直接生成
oracle資料庫表結構和資料遷移mysql資料庫
採用的是Navicat 11.2.7版本客戶端工具自帶的資料傳輸功能 1、首先在Navicat中配置有關oracle資料庫的規則檔案,也就是配置oracle 的oci.dll檔案,配置路徑截圖如下: 2、在Navicat中配置oracle資料庫連結,也就是資料來源. 3
PowerDesigner15建立MySQL資料庫表結構設計
1、 開啟你的powerdesinger 2. 新建你的物理模型 workspace-->new-->pgysical Data Model 3. 建表 點選:Phyical Data 右鍵 New -->Table
MySQL樹形結構的數據庫表設計和查詢
set fine 菜單 參考 rac dba exists 所有 tps 1、鄰接表(Adjacency List) 實例:現在有一個要存儲一下公司的人員結構,大致層次結構如下: 那麽怎麽存儲這個結構?並且要獲取以下信息: 1.查詢小天的直接上司。
第九篇 數據表設計和保存item到json文件
初始 self pycha cti ensure comment 項目 div init 上節說到Pipeline會攔截item,根據設置的優先級,item會依次經過這些Pipeline,所以可以通過Pipeline來保存文件到json、數據庫等等。 下面是自定義json