位置: 编程技术 - 正文
推荐整理分享几个缩减MySQL以节省磁盘空间的建议(mysql缩进快捷键),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql瘦身,mysql缩进,mysql缩进,mysql缩进,mysql瘦身,mysql缩印,mysql缩进,mysql缩表,内容如对您有帮助,希望把文章链接给更多的朋友!
我们在工作中时常会遇到一些客户的TPSQPS都不太高,但磁盘占用非常大,一旦单实例空间太大,像内存、网络、CPU以及备份都将增加相应的开销。可能仅仅是由于空间不满足使得我们不得不进行扩容,下面的方法提供给大家参考。有则改之无则加勉。1、表结构设计上1) 字符集是否遵循了最小化原则(能用latin的就不用gbk。能用gbk的就不用utf8)2) 索引上是否有滥用?(根本不使用的字段建索引、不适合建索引的字段建索引、重复建索引或者不能很好的利用前缀索引等)3) 冗余字段是否太多?(各表中不用的或者字段冗余太多)4) 不正确的字段类型?(能用1个字节非要用几个字节,像枚举类、状态类比较常见)5) 将较长的字段或者几个字段组合做为主键?(主键最好用mysql自增)具体事例如下:
通过上面的表结构能看到如下地方不合适1、主键与唯一索引明显重复,索引cm_cd_ind与索引cm_cdcn_ind索引重复(这种情况经常出现,大家留意下)2、cm_cs_ind如果两个状态分布均匀也明显不合适建索引3、class_desc由于是描述性质的,也不合适建索引4、最好以自增做为主键,可以减少整表的空间5、class_status列明显可以用tinyint来存,可以省下个字节
2、存储内容上1) 是否将图片、视频、音乐等大数据存储在表中?(表里最好只保留路径而不是实际的文件内容)3、数据保留上1)是否有已过期而未删除的数据(对于无效数据及时清理或者进行历史归档)4、后期维护上1)是否对经常删除的表进行维护(optimize table)
建议:1、在性能要求不高的case中(并发不太高),可以考虑使用压缩表。一般压缩率在%-%之间,收益非常可观。2、对于删除非常频繁的表要定期进行优化,使表中碎片减少。提高查询、写入的性能。3、在表结构设计上,一定要发扬“斤斤计较”的精神,能用1个字节表示的坚决不用2个字节。4、尽量减少大字段的使用。
ps:经常在跟开发评审表结构的时候,时常会被笑话说DBA太抠门,一点都不大气。当数据量小的时候可能大家不觉得,但当你的数据级到T或者P的时候,哪怕多省几个字节都是非常可观的,给大家简单算笔账,如果我们将一张5亿条记录的表,字段从个字节降到个字节(应该很容易做到吧),那么不算上索引将节约大约G的空间。
MySQL中一些优化straight_join技巧 在oracle中可以指定的表连接的hint有很多:orderedhint指示oracle按照from关键字后的表顺序来进行连接;leadinghint指示查询优化器使用指定的表作为连接的首
通过MySQL优化Discuz!的热帖翻页的技巧 写在前面:discuz!作为首屈一指的社区系统,为广大站长提供了一站式网站解决方案,而且是开源的(虽然部分代码是加密的),它为这个垂直领域的行
分析MySQL中索引引引发的CPU负载飙升的问题 收到一个mysql服务器负载告警,上去一看,loadaverage都飙到多了,用top一看,CPU跑到了%,不过IO和内存的负载并不高,根据经验,应该又是一起索引
标签: mysql缩进快捷键
本文链接地址:https://www.jiuchutong.com/biancheng/347320.html 转载请保留说明!上一篇:简单解析MySQL中的cardinality异常(mysql -ne)
友情链接: 武汉网站建设