我们的sql和索引的优化大概就这么多,然后我们再来看一下表结构的优化是怎么样的。
首先我们需要选择最合适的数据类型,那么什么叫合适呢?主要有4点:
第一,可以存在我们字段数据的最小的数据类型。
第二,如果可以使用int代替varchar等数据类型,最好用int,因为int的处理比varchar等数据类型的处理简单。(两个例子,一个是存储时间,一个是存储IP)
第三,尽可能的使用not null定义字段。
第四,在存储一些文章或者篇幅 比较大的字段时,我们尽量避免使用text,如果必须要使用,要考虑到分表的操作。
然后我们再来讲一下表的垂直拆分和水平拆分。
所谓的表的垂直拆分就是把一个有很多列的表拆分成一个多列的表,解决的是表的宽度,那么这里就会有一定的技巧,比如:
1、我们把一些常用的字段放在一张表中。
2、我们把一些不常用的字段放在一张表中。
3、我们把一些大数据的字段放在一张表中。
水平拆分呢,就是为了解决一个表中数据量过大的问题,我们水平的把一个表分为多个表,表的数据结构没有变化。
还有就是操作系统的配置优化:
一般就是增加TCP的连接数,以及减少连接时资源回收,再有就是打开对文件数的限制,再有就是最好关闭防火墙之类的软件,因为这种东西会对我们的系统性能产生损耗。
我们可以使用第三方的工具帮我们进行配置,介绍一款percona公司的配置工具
Person Configuration Wizard 网址:https://tools.percona.com/wizard,选择方式然后填写信息域名等,就会帮你生成一个配置文件。当然具体的配置还是要根据实际情况,不能完全以工具的配置文件为准。
再有的就是我们的硬件优化,大家都知道,硬件的优化,需要消耗大量的成本,我们这里需要注意并不是服务器的cpu核数越多越好的,有实验测试得,mysql5.5的版本,在32核的服务器下,反而性能降低。
我们可以通过增加磁盘阵列的方式优化我们的磁盘IO一般就是RAID0,RAID1,RAID5,RAID0就是把多个磁盘连接成一块硬盘使用,这样的方式IO最好。我们一般的数据库都建议采取RAID1+0的方式来进行配置。
ok,大概能想到的就这么多,以后如果想到更全面的再补充,这里就是我们MYsql优化的全部内容了,如果你有什么好的建议或者补充,欢迎留言~
分享一首我最爱的民谣没有之一。