1. 程式人生 > >MySQL資料庫表的主鍵到底是用GUID好,還是INT好?

MySQL資料庫表的主鍵到底是用GUID好,還是INT好?

待補充

 兩遍對比的文章:

CREATE TABLE Test_Guid
(
Guid varchar(50) not null,
TestId int not null,
TestText ntext not null,
TestDateTime datetime default getdate(),
CONSTRAINT PK_Guid PRIMARY KEY (Guid)
)

應該改成這樣吧:

CREATE TABLE Test_Guid
(
Guid uniqueidentifier not null,
TestId int not null,
TestText ntext not null,
TestDateTime datetime default getdate(),
CONSTRAINT PK_Guid PRIMARY KEY (Guid)
)

另外,在使用Guid型別作為主鍵時,一定要記得取消主鍵的“聚集索引” 否則,在插入資料的時候會有嚴重的效能損耗。因為Guid的值不具有可預測性。

相關推薦

MySQL資料庫到底是GUID還是INT

待補充  兩遍對比的文章: CREATE TABLE Test_Guid ( Guid varchar(50) not null, TestId int not null, TestText ntext not null, TestDateTime datetime default getdate

MySQL資料庫和外來的操作

在MySQL資料庫中,一般會涉及到主鍵和外來鍵,在上一個表中添加了主鍵之後,通常在下一個表中要新增外來鍵,但是添加了外來鍵之後,在實體類和資料庫中在加上上一個表的主鍵會比較好,這樣兩個表關聯之後,在上一個表查詢完成之後,將查詢是出來的欄位拿著去下一個庫裡查詢,會比較好。 select * fro

mysql資料庫 id自增加刪除後不連續的問題 解決

在主鍵id刪除某一條後,再次新增,刪除的id不會使用,這是為了主鍵的唯一性,但是在程式中可能會出現問題,導致前後端不統一。 解決問題的思路是:修改開始自增加的id,從而讓自增加開始於你設定的值 用到的方法是:alter table category auto_increment = 10

mysql資料庫根據關聯更新指定欄位值

需求: 現有兩個表分別為 person_info2  和 person_info ,person_info2 表資料不變,當person_info2表中的主鍵和person_info2 表的主鍵相同時,則更新person_info2 表中其他欄位更新為per

利用PHP腳本輔助MySQL數據庫管理2-索引

dbi ble nbsp 管理 item tab count key root <?php $dbi = new DbMysql; $dbi->dbh = ‘mysql://root:[email protected]/coffeetest‘; $ma

MySQL 如何修改、新增、刪除

在我們使用mysql的時候,有時會遇到須要更改或者刪除mysql的主鍵,我們能夠簡單的使用 alter table 表名 drop primary key;來完成。以下我使用資料表table_test來作了樣例。 1、首先建立一個數據表table_test: create table t

資料庫外來主表關聯

轉自:https://www.2cto.com/database/201707/662425.html 一、前言 在資料庫設計中,hibernate,iBatis等ORM框架的使用中經常聽說主鍵,外來鍵,主表,從表,關聯表,父表,子表之類的術語,弄懂它們之前的區別與聯絡對於資料庫設計和ORM框架的學習使用

資料庫MySQL中刪除

在MySQL中刪除主鍵需要兩步. 1、如果有auto_increment,先刪除之; 2、刪除主鍵約束 primary key. 例如: 1)假設我們有個表products.裡面的pid為主鍵,

SQL2008資料庫實現欄位自增

自增在建表中很常用,除了方便編碼,對於記錄的遍歷也有好處 設定表內主鍵欄位自增的方法有兩種:一種是指令碼建表;一種是視覺化介面設定 一:指令碼建表(以Tuser表為例) CREATE TABLE Tuser( [id] [int] IDENTITY(1,1) NOT

mysql檢視沒有

SELECT * FROM information_schema.tables AS t LEFT JOIN (SELECT DISTINCT table_schema, table_name FRO

Java註解配置數據庫

java gen http 運行 數據庫表 integer rac bsp ber 一 數字類型 Integer @Id @GeneratedValue(strategy=GenerationType.IDENTITY) 運行後就Hiber

MySQL 和 Oracle 自增長

pos tom 速度 mage hone class 緩沖 開始 www 1、MySQL 1)建表 auto_increment:每插入一條數據,客戶表(customers)的主鍵id就自動增1,如下所示 1 create table customers --

mybatis的執行流程 #{}和${} Mysql自增返回

ola save select .org 經驗 sel 占位符 upd 執行 n Mybatis配置 全局配置文件SqlMapConfig.xml,配置了Mybatis的運行環境等信息。 Mapper.xml文件即Sql映射文件,文件中配置了操作數據庫的Sql語句。此文件需

MySQL基礎之 設置

cit eight warn unsigned sql delet 行操作 名稱 style 外鍵: 定義:如果表A的主關鍵字是表B中的字段,則該字段稱為表B的外鍵,表A稱為主表,表B稱為從表。 作用:外鍵是用來實現參照完整性的,不同的外鍵約束方式將可以是兩張表緊密的結合起

資料庫刪除

只適用於主鍵中只有一個元素 (1)欄位有自增約束先刪除自增約束 alter table 表名 change 欄位名 欄位名 資料型別; (2)刪除主鍵 alter table 表名 drop primary key;   有自定義名字的主鍵: 新增主鍵alter table

mysql索引、、唯一索引、聯合索引的區別(索引的建立原則和注意事項)

索引對資料庫效能的影響? 本質:縮小查詢範圍。大大減少需要掃描的資料量。大大提高查詢的速度,降低寫的速度,佔用磁碟。將隨機I/O變成順序I/O 特大的表怎麼解決查詢問題? 分割槽。 主鍵索引和唯一索引的區別? 一個表只能有一個主鍵索引,但可以有多個唯一索引, 主鍵索引是唯一索

mysql資料庫比較diff

select table_name frominformation_schema.tables where table_schema='ehsuat' and table_type='basetable';   先將所有表名查出來放在一個tables.txt 檔案中  

mysql資料庫結構定義檔案和儲存引擎檔案

目錄 1.表結構定義檔案:      2.儲存引擎檔案 2.1表空間檔案 2.2重做日誌檔案 3. 如何用frm檔案恢復資料庫結構 1.表結構定義檔案:      *.frm 檔案是所有m

(三)Hive元資料資訊對應MySQL資料庫

(三)Hive元資料資訊對應MySQL資料庫表   目錄 概述 一、儲存Hive版本的元資料表(VERSION) 二、Hive資料庫相關的元資料表(DBS、DATABASE_PARAMS) 1、DBS 2、DATABASE_P