摘要:和數(shù)據(jù)類型的用法在存儲(chǔ)字符串時(shí),可以使用或者類型相同點(diǎn)和都可以存儲(chǔ)變長(zhǎng)字符串且字符串長(zhǎng)度上限為字節(jié)不同點(diǎn)速度快,不存在空間浪費(fèi),不處理尾部空格,上限為字節(jié),但是有存儲(chǔ)長(zhǎng)度實(shí)際字節(jié)最大可用。
點(diǎn)贊再看,養(yǎng)成贊美的習(xí)慣,微信搜一搜【香菜聊游戲】關(guān)注我。
目錄
2、varchar 和 text 數(shù)據(jù)類型的用法
MySQL中有多種表示時(shí)間日期的數(shù)據(jù)類型,主要有YEAR、TIME、DATE、DATETIME、TIMESTAMP等
datetime和timestamp都可以表示 YYYY-MM-DD HH:MM:SS 這種年月日時(shí)分秒格式的數(shù)據(jù)。
datetime存儲(chǔ)與時(shí)區(qū)無(wú)關(guān)(準(zhǔn)備來(lái)說(shuō)是datetime只支持一個(gè)時(shí)區(qū),就是存儲(chǔ)時(shí)當(dāng)前服務(wù)器的時(shí)區(qū)),而timestamp存儲(chǔ)的是與時(shí)區(qū)有關(guān)。
datetime、timestamp精確度都是秒,datetime與時(shí)區(qū)無(wú)關(guān),存儲(chǔ)的范圍廣(1001-9999),timestamp與時(shí)區(qū)有關(guān),存儲(chǔ)的范圍小(1970-2038)。
TIMESTAMP和DATETIME除了存儲(chǔ)范圍和存儲(chǔ)方式不一樣,沒(méi)有太大區(qū)別。當(dāng)然,對(duì)于跨時(shí)區(qū)的業(yè)務(wù),TIMESTAMP更為合適。
mysql在存儲(chǔ)字符串時(shí), 可以使用char、varchar或者text類型
varchar 和 text 都可以存儲(chǔ)變長(zhǎng)字符串且 字符串長(zhǎng)度上限為65535字節(jié)
varchar 速度快,不存在空間浪費(fèi),不處理尾部空格,上限為65535字節(jié),但是有存儲(chǔ)長(zhǎng)度實(shí)際65532字節(jié)最大可用。255字節(jié)以下用1字節(jié)存儲(chǔ)長(zhǎng)度,255字節(jié)以上用2字節(jié)存儲(chǔ)長(zhǎng)度。 text,存變長(zhǎng)大數(shù)據(jù),速度慢,不存在空間浪費(fèi),不處理尾部空格,上限65535字節(jié),會(huì)用額外空間存放數(shù)據(jù)長(zhǎng)度,顧可以全部使用65535字節(jié)。
不能在TEXT列上放置索引(全文索引除外),對(duì)于text來(lái)說(shuō),只能添加前綴索引,并且前綴索引最大只能達(dá)到1000字節(jié)
text沒(méi)有默認(rèn)值
當(dāng)varchar大于某些數(shù)值的時(shí)候,其會(huì)自動(dòng)轉(zhuǎn)換為text,大概規(guī)則如下:
大于varchar(255)變?yōu)?tinytext
大于varchar(500)變?yōu)?text
大于varchar(20000)變?yōu)?mediumtext
1、經(jīng)常變化的字段用varchar;
2、知道固定長(zhǎng)度的用char;
3、超過(guò)255字節(jié)的只能用varchar或者text;
4、能用varchar的地方不用text;
5、能夠用數(shù)字類型的字段盡量選擇數(shù)字類型而不用字符串類型,這會(huì)降低查詢和連接的性能,并會(huì)增加存儲(chǔ)開(kāi)銷。這是因?yàn)橐嬖谔幚聿樵兒瓦B接回逐個(gè)比較字符串中每一個(gè)字符,而對(duì)于數(shù)字型而言只需要比較一次就夠了;
6、存儲(chǔ)引擎對(duì)于選擇 CHAR 和 VARCHAR 的影響:
對(duì)于 MyISAM 存儲(chǔ)引擎,最好使用固定長(zhǎng)度的數(shù)據(jù)列代替可變長(zhǎng)度的數(shù)據(jù)列。這樣可以使整個(gè)表靜態(tài)化,從而使數(shù)據(jù)檢索更快,用空間換時(shí)間。
對(duì)于InnoDB存儲(chǔ)引擎,最好使用可變長(zhǎng)度的數(shù)據(jù)列,因?yàn)?InnoDB 數(shù)據(jù)表的存儲(chǔ)格式不分固定長(zhǎng)度和可變長(zhǎng)度,因此使用 CHAR 不一定比使用 VARCHAR 更好,但由于 VARCHAR 是按照實(shí)際的長(zhǎng)度存儲(chǔ),比較節(jié)省空間,所以對(duì)磁盤(pán) I/O 和數(shù)據(jù)存儲(chǔ)總量比較好。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/125342.html
摘要:微信公眾號(hào)后端進(jìn)階,專注后端技術(shù)分享框架分布式中間件服務(wù)治理等等。 微信公眾號(hào)「后端進(jìn)階」,專注后端技術(shù)分享:Java、Golang、WEB框架、分布式中間件、服務(wù)治理等等。 老司機(jī)傾囊相授,帶你一路進(jìn)階,來(lái)不及解釋了快上車! 我發(fā)現(xiàn)數(shù)據(jù)庫(kù)有些日期居然用字符串保存?于是跟幾個(gè)小伙伴討論了關(guān)于數(shù)據(jù)庫(kù)的日期應(yīng)該要怎么保存的問(wèn)題,其實(shí)我一直都建議直接用數(shù)值保存時(shí)間戳,為什么我要這么建議呢?...
摘要:示例指定了也就是零時(shí)區(qū),顯示的時(shí)間會(huì)加上本地時(shí)區(qū)的偏移小時(shí)。其實(shí)就是上面顯示時(shí)間時(shí)使用的形式除了能表示基本信息,還可以表示星期,但是一點(diǎn)也不容易讀,不建議使用。 原文對(duì) ISO 8601 時(shí)間格式中 T 和 Z 的表述有一些錯(cuò)誤,我已經(jīng)對(duì)原文進(jìn)行了一些修訂,抱歉給大家造成誤解。 最近使用 sequelize 過(guò)程中發(fā)現(xiàn)一個(gè)奇怪的問(wèn)題,將某個(gè)時(shí)間插入到表中后,通過(guò) sequelize 查...
摘要:獲取定制時(shí)間戳的方法返回?cái)?shù)值的單位是毫秒。返回指定日期減去時(shí)間間隔后的具體日期返回返回指定日期為全年的第幾天日期二將時(shí)間戳轉(zhuǎn)為普通日期時(shí)間格式當(dāng)前時(shí)間戳將時(shí)間戳轉(zhuǎn)為日期時(shí)間格式 PHP、JavaScript、MySQL操作時(shí)間 關(guān)于時(shí)間的那些事 PHP篇 PHP中時(shí)間操作單位是秒 一、將時(shí)間戳轉(zhuǎn)為普通日期格式 //當(dāng)前時(shí)間戳 time(); //當(dāng)前時(shí)間格式 date(Y-m-...
閱讀 3735·2023-01-11 11:02
閱讀 4244·2023-01-11 11:02
閱讀 3050·2023-01-11 11:02
閱讀 5180·2023-01-11 11:02
閱讀 4737·2023-01-11 11:02
閱讀 5534·2023-01-11 11:02
閱讀 5313·2023-01-11 11:02
閱讀 3986·2023-01-11 11:02