mysql中char、varchar、nvarchar区别

mysql 中 char 、 varvhar 、 nvarchar 都是用来 存储字符串 的,只是他们的存储方式不一样。

固定长度的非Unicode字符数据,最大长度8000个字符。例:char(8) 输入的字符小于8时,后面用空格补齐,输入的字符大于8时,截取前8个字符。

可变长度的非Unicode字符数据,最大长度8000个字符。例:varchar(8) 存储的字符实际上就是你所输入的字符。但要在总长度上加1字符,用来记录其字节的长度。

可变长度的Unicode字符数据,最大长度4000个字符。字节的存储大小是所输入字符个数的两倍。

char的存储速率比varchar要高,因为varchar要去计算输入字符的长度。但是空间的利用率上varchar要比char更好。

我们知道Unicode编码对英文和中文字符都是用两个字节表示,nvarchar一般用来存储中文 ,存储英文的时候数量上会有所损失。

建议纯英文和数字用char/varchar,有中文使用nvarchar。

对于 MyISAM 存储引擎的表,尽量使用 char ,对于经常需要修改而形成碎片的myisam数据表更是如此,它的缺点是占用磁盘空间。

对于 InnoDB 存储引擎的表,尽量使用 varchar ,因为它的数据存储格式对固定长度的格式和可变长度的格式不加以区分,所以char会比varchar占用更多存储空间,从减少空间占用和磁盘I/O角度看,使用varchar更好。

关于varchar还有一个问题,varchar可以自适应存储空间,那varchar(20)和varchar(1000)存储都是一样的,那每次设计越大就好,免得以后不够用,这个观点是错的,因为mysql会把表信息放进内存中(查询第一次后就缓存了),这时内存的申请是按照固定长度来的,varchar很大,申请的内存也会越大,所以还是按需设值。

1、 存储很短的信息的时候应该用char,例如门牌号:104,因为varchar还会再多一个字节记录长度。

2、 频繁改变的字段应该用char,因为每次修改varchar都会重新计算长度,而这些char不用。

3、 大数据量(多行)提取时varchar的磁盘I/O消耗更低,意味着varchar在综合查询性能上比char更好。

4、 存储数据有中文时,有用nvarchar。

  • mysql鏈夊嚑绉嶆暟鎹被鍨嬪憿?鍒嗗埆鏄摢鍑犵鍛?
    绛旓細char(10) 浠h〃鏈澶ф敮鎸 10 涓瓧绗﹀瓨鍌,varhar(10) 铏界劧鍜 char(10) 鍙瓨鍌ㄧ殑瀛楃鏁颁竴鏍峰,涓嶅悓鐨勬槸 varchar 绫诲瀷瀛樺偍鐨勬槸瀹為檯澶у皬,char 瀛樺偍鐨勭悊璁哄浐瀹氬ぇ灏忋傚叿浣撶殑瀛楄妭鏁板拰瀛楃闆嗙浉鍏炽傜ず渚 4渚嬪涓嬮潰琛 t4 ,涓や釜瀛楁 c1,c2,鍒嗗埆涓 char 鍜 varchar銆mysql-(ytt/3305)->create table t4 (c1 char(20...
  • MYSQL涓濡備綍閫夋嫨鍚堥傜殑鏁版嵁绫诲瀷
    绛旓細char(10) 浠h〃鏈澶ф敮鎸 10 涓瓧绗﹀瓨鍌,varhar(10) 铏界劧鍜 char(10) 鍙瓨鍌ㄧ殑瀛楃鏁颁竴鏍峰,涓嶅悓鐨勬槸 varchar 绫诲瀷瀛樺偍鐨勬槸瀹為檯澶у皬,char 瀛樺偍鐨勭悊璁哄浐瀹氬ぇ灏忋傚叿浣撶殑瀛楄妭鏁板拰瀛楃闆嗙浉鍏炽傜ず渚 4渚嬪涓嬮潰琛 t4 ,涓や釜瀛楁 c1,c2,鍒嗗埆涓 char 鍜 varchar銆mysql-(ytt/3305)->create table t4 (c1 char(20...
  • 2017骞12鏈堣绠楁満浜岀骇MySQL妯℃嫙璇曢鍙婄瓟妗(3)
    绛旓細2銆佷笅鍒梍__绫诲瀷涓嶆槸MySQL涓甯哥敤鐨勭殑鏁版嵁绫诲瀷銆侫.INT B.VAR C.TIME D.CHAR 3銆佸彲鐢ㄤ簬浠庤〃鎴栬鍥句腑妫绱㈡暟鎹殑SQL璇彞鏄痏__銆侫.SELECT璇彞 B.INSERT璇彞 C.UPDATE璇彞 D.DELETE璇彞 4銆丼QL璇█鍙堢О___銆侫.缁撴瀯鍖栧畾涔夎瑷 B.缁撴瀯鍖栨帶鍒惰瑷 C.缁撴瀯鍖栨煡璇㈣瑷 D.缁撴瀯鍖栨搷绾佃瑷 5銆佷笅鍒楄鍙ヤ腑...
  • 鏁版嵁搴撳嚱鏁版湁鍝簺?
    绛旓細鍥犳暟鎹簱涓嶅悓鏈変笉鍚鐨鍑芥暟,浠racle涓轰緥:甯哥敤鐨勬湁鍗曟潯璇彞浣滅敤鐨勫嚱鏁:destinct(鍘婚櫎閲嶅琛),to_char(杞崲鑷涓),to_date(鏃ユ湡鏍煎紡鍑芥暟),sumstr(鎴彇鑷涓),lower(灏嗗瓧姣嶈浆鎹负灏忓啓),upper(灏嗗瓧姣嶇煑鎹负灏忓啓),char(灏嗘暟瀛楄浆鎹负瀛楃),ascii(姹傚瓧绗︾殑ascii鐮)绛夊嚱鏁; 缁勫嚱鏁:min(姹傛渶灏忓),max(姹傛渶澶...
  • 甯垜鐪嬬湅 杩欏彞SQL璇彞,姣旇緝鏃犺
    绛旓細寰楀厛鍔犱竴鍙rimary key锛岃〃绀鸿繖涓鍒楄閫変负涓婚敭锛岀劧鍚庢墠鑳藉啓鑷鍝︺
  • 浠涔堟槸MySql鏁版嵁搴
    绛旓細MySQL鏁版嵁搴: MySQL鏄竴绉嶅紑鏀炬簮浠g爜鐨勫叧绯诲瀷鏁版嵁搴撶鐞嗙郴缁(RDBMS),浣跨敤鏈甯哥敤鐨勬暟鎹簱绠$悊璇█--缁撴瀯鍖栨煡璇㈣瑷(SQL)杩涜鏁版嵁搴撶鐞嗐 MySQL鏄紑鏀炬簮浠g爜鐨,鍥犳浠讳綍浜洪兘鍙互鍦℅eneral Public License鐨勮鍙笅涓嬭浇骞舵牴鎹釜鎬у寲鐨勯渶瑕佸鍏惰繘琛屼慨鏀广 MySQL鍥犱负鍏堕熷害銆佸彲闈犳у拰閫傚簲鎬ц屽鍙楀叧娉ㄣ傚ぇ澶氭暟浜洪兘璁や负鍦ㄤ笉闇...
  • sql涓declare鏄粈涔堟剰鎬
    绛旓細sql涓declare鏄0鏄庣殑鎰忔濓紝灏辨槸澹版槑鍙橀噺鐨勶紝杩欎釜涓鑸槸鐢ㄥ湪鍑芥暟鍜屽瓨鍌ㄨ繃绋嬩腑鐨勩傛瘮濡傝锛岃繖涓瓨鍌ㄨ繃绋嬫槸锛屽彧瑕佷綘鎶婂鍙疯緭鍏ヨ繘鏉ワ紝灏辫兘鏌ヨ杩欎釜瀛︾敓鐨勭彮绾с傞偅涔堝湪杩欎釜瀛樺偍杩囩▼閲岄潰锛 瀛﹀彿灏辨槸鍙傛暟銆備綘缁欎粈涔堝鍙凤紝 瀹冨氨杩斿洖缁欎綘鐩稿簲鐨勭彮绾с傚張鎴栬呬綘涔熷彲浠ュ仛鎴愶紝 鍙浣犺緭鍏ュ鍙凤紝 杩欎釜瀛樺偍杩囩▼灏变細灏嗚繖涓...
  • 濡備綍淇敼MySQL瀛楃闆
    绛旓細鍦╗client]涓嬫坊鍔狅紝client涓烘帶鍒跺鎴风鐨勶紝娌¤瘯杩囷紝娌℃湁鐨勫彲浠ヤ笉闇瑕佸姞銆俤efault-character-set=utf8 鍦╗mysqld]涓嬫坊鍔锛宮ysqld涓烘帶鍒舵湇鍔″櫒绔殑锛屾敼杩囦簡锛孫K銆俤efault-character-set=utf8 3.service mysqld restart锛岄噸鍚4.show variables like '%char%';鏌ョ湅銆備互涓嬩负缃戠粶杞浇锛屾瘮杈冨叏銆/// 鏌...
  • 濡備綍鏌ョ湅mysql鏁版嵁搴撶殑鏃ュ織鏂囦欢
    绛旓細濡傛灉娌℃湁鎸囧畾[file-name]锛岄粯璁や负涓绘満鍚(hostname)鍋氫负鏂囦欢鍚嶏紝榛樿瀛樻斁鍦―ATADIR鐩綍涓備篃鍙互灏唋og閰嶇疆鍒癿y.cnf鏂囦欢涓紝杩欐牱灏辩渷鍘讳簡姣忔鍦ㄥ惎鍔mysqld鏃堕兘鎵嬪伐鎸囧畾--log.渚嬪:The MySQL server [mysqld]...query-log log = /var/lib/mysql/query_log.log ...2.璇诲彇鏌ヨ鏃ュ織 鏌ヨ鏃ュ織鏄函...
  • 鐢C璇█鎬庝箞瀹炵幇涓庢暟鎹簱鐨杩炴帴
    绛旓細MYSQL_ROWrow;char*server="localhost";//鏈湴杩炴帴 char*user="root";// char*password="525215980";//mysql瀵嗙爜 char*database="student";//鏁版嵁搴撳悕 char*query="select*fromclass";//闇瑕佹煡璇鐨璇彞 intt,r;conn=mysql_init(NULL);if(!mysql_real_connect(conn,server,user,password,data...
  • 扩展阅读:www.sony.com.cn ... mysql varchar转数字 ... mysql左连接查询sql语句 ... mysql text和varchar ... mysql varchar长度 ... putchar ... mysql varchar最大 ... mysql char和varchar区别 ... mysql number ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网