当前标签 / 数据类型 / 总共2篇

MySQL数据类型和字符集的选择

前言

在使用MySQL的时候我们会遇到一个问题就是如何去选择合适的数据类型和字符集,选择合适的数据类型可以提供效率和节省空间,选择合适的字符集可以解决一些编码问题。

数据类型

char和varchar

都是用来存储字符串的,但是它们的检索方式不同,char属于固定长度的字符类型,而varchar属于可变长度的字符类型。

char(4)存储长度varchar(4)存储长度
‘    ‘4个字节1个字节
‘ab’‘ab  ‘4个字节‘ab’2个字节
‘abc’‘abc ‘4个字节‘abc’3个字节
‘abcd’‘abcd’4个字节‘abcd’4个字节

由于char是固定长度的,所以它的处理速度比varchar快的多,但是浪费存储空间,所以对于那些长度变化不大并对查询速度有要求的数据可以考虑使用char类型来存储。

另外,随着MySQL版本的不断升级,varchar数据类型的性能也在不断改进并提高,所以实际使用中varchar被使用的更多。

阅读更多

Kotlin的数据类型和集合

参考链接: 《Kotlin实战》

基本类型

在Kotlin中并不区分基本数据类型和包装类型,例如:

val i: Int = 1
val list: List<Int> = listOf(1, 2, 3)

fun showProgress(progress: Int){
    val percent = progress.coerceIn(0, 100)
}

大多数情况下Kotlin的Int类型会被编译成Java的基本数据类型,用作泛型类型参数的基本类型会被编译成Java的包装类型。

在Kotlin中的可空类型不能用Java的基本类型表示(例如:Int?、Boolean?),这个时候会被编译成对应的Java包装类型。

var list: List<Int> = listOf(1, 2, 3)

上面代码的listOf集合类的参数是泛型,所以会编译成java的包装类型,所以要高效的存储基本类型建议用数组来存储。

阅读更多