数据类型优化
1.1 整形比字符串操作代价更低
1.2 不用字符串存日期
1.3 用整形存储IP地址
1.4 字段最好指定列为not null 但InnoDB使用单独的位(bit)存储NULL值,所以对于稀疏数据(只有少数数据为非NULL)有很好的空间效率,但不适用于MyISAM
1.5 选用具体类型,例如TIMESTAMP(1970-2038 4个字节)只使用DATETIME(1001-9999 8个字节)一半的存储空间,但其允许的时间范围要小很多
1.6 整数类型:TINYINT,SAMLLINT.MEDIUMINT,INT,BIGINT分别使用8,16,24,32,64位存储空间,可存储的值的范围为-2的(N-1)次方到2的(N-1)次方减一,此外整数类型有可选UNSIGNED属性,表示不允许负值,可以使正数的上限提高一倍
1.7 DECIMAL类型用于存储精确的小数,Mysql 5.0和更高版本,DECIMAL类型支持精确计算,Mysql 4.1以及更早版本则使用浮点运算来实现,可能会影响精度,其可用于存储财务数据,但当数据量比较大时,可以考虑用BIGINT代替DECIMAL
1.8 char定长,varchar不定长,具体的存储和存储引擎有关
1.9 在查询语句后面增加for update,数据库会在查询过程中给数据库表增加排他锁 (注意: InnoDB 引擎在加锁的时候,只有通过索引进行检索的时候才会使用行级锁,否则会使用表级锁。这里我们希望使用行级锁,就要给要执行的方法字段名添加索引,值得注意的是,这个索引一定要创建成唯一索引,否则会出现多个重载方法之间无法同时被访问的问题。重载方法的话建议把参数类型也加上。)。当某条记录被加上排他锁之后,其他线程无法再在该行记录上增加排他锁。
Mysql读书笔记
最新推荐文章于 2022-09-30 18:06:08 发布