mysql优化1.1

一、概述

        应用程序架构中(Lamp),最慢的一环,都是数据库!

        PHP:业务逻辑都是相似的,不会随着数据的增加而变得更加复杂。

        MySQL:数据是不断增加的,同样的运算,随着数据的增加而变慢!

二、如何提升数据库效率

        通常需要从4个方面考虑。

        设计方面:存储引擎的选择,字段类型的选项,实体间的关系设计,范式的选择。

        功能方面:索引,查询缓存,分区分表等等。

        架构层面:负载均衡集群,读写分离的处理,冷热数据分离。

        应用层面:SQL应该如何书写、多表联查、表单查询、尽可能避免哪些低效的SQL。

三、字段类型的选择(可优化性不强)

        建表时,往往需要考虑字段的类型问题,需要注意以下几个原则:

        1.尽可能占用更少的存储空间,可能出现的问题,存储量的减少,范围的减少。

                例:tinyint:1Byte;

                        smallint:2Byte;

                        mediumint:3Byte;

                        int:4Byte;

                        bigint:8Byte;

                        可能出现的问题:

                        datetime:8Byte;

                        timestamp:4Byte;

                        datetime和timestamp的选择?

                        当存储的时间超过了unix时间戳的范围(2038年1月19日11时14分08秒),timestamp字段就会失败。

                        如果我们仅仅存储登录时间则可以用timestamp来存储。

        2.char和varchar的选择:

                定长的数据类型的运算速度,要比变长的数据类型速度快

                类型:char(32)        varchar(32)

                数据:hello              hello

                空间:32                  5+1(1个空间记录长度)

                如果在乎存储空间:varchar;

                如果在乎计算效率:char;

        3.varchar和text的选择:

                varchar最大的存储空间65535Byte。

                text最大的存储空间65535Byte。

                varchar占用记录的存储空间。

                text不占用记录的存储空间。

                一条记录的存储空间有最大的限制,默认为65535Byte。

                如果使用varchar,并且该字段占用了60000Byte,则该条语句的其他字段存储空间最大不能超过5535Byte。

                而使用text,则不会出现以上情况。

        4.浮点(double:8Byte/fload:4Byte)和定点(decimal)的选择:

                浮点:更在乎存储空间,不能保留全部的精度,定长数据类型,占用固定的存储空间。

                定点:更在乎精度,占用非固定的存储空间,随着有效位数增加,而占用更多的存储空间。

        5.尽可能用整数代替字符串

                整数计算能力最强

                例:ipv4的存储,可以转成int。(存储空间小,整数计算快)





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值