问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql数据库中,数据量很大的表,有什么优化方案么?

发布网友 发布时间:2023-04-04 16:19

我来回答

1个回答

热心网友 时间:2024-03-01 07:52

个人的观点,这种大表的优化,不一定上来就要分库分表,因为表一旦被拆分,开发、运维的复杂度会直线上升,而大多数公司是欠缺这种能力的。所以MySQL中几百万甚至小几千万的表,先考虑做单表的优化。

单表优化

单表优化可以从这几个角度出发:

表分区:MySQL在5.1之后才有的,可以看做是水平拆分,分区表需要在建表的需要加上分区参数,用户需要在建表的时候加上分区参数;分区表底层由多个物理子表组成,但是对于代码来说,分区表是透明的;SQL中的条件中最好能带上分区条件的列,这样可以定位到少量的分区上,否则就会扫描全部分区。

读写分离:最常用的优化手段,写主库读从库;

增加缓存:主要的思想就是减少对数据库的访问,缓存可以在整个架构中的很多地方,比如:数据库本身有就缓存,客户端缓存,数据库访问层对SQL语句的缓存,应用程序内的缓存,第三方缓存(如Redis等);

字段设计:单表不要有太多字段;VARCHAR的长度尽量只分配真正需要的空间;尽量使用TIMESTAMP而非DATETIME;避免使用NULL,可以通过设置默认值解决。

索引优化:索引不是越多越好,针对性地建立索引,索引会加速查询,但是对新增、修改、删除会造成一定的影响;值域很少的字段不适合建索引;尽量不用UNIQUE,不要设置外键,由程序保证;

SQL优化:尽量使用索引,也要保证不要因为错误的写法导致索引失效;比如:避免前导模糊查询,避免隐式转换,避免等号左边做函数运算,in中的元素不宜过多等等;

NoSQL:有一些场景,可以抛弃MySQL等关系型数据库,拥抱NoSQL;比如:统计类、日志类、弱结构化的数据;事务要求低的场景。

表拆分

数据量进一步增大的时候,就不得不考虑表拆分的问题了:

垂直拆分:垂直拆分的意思就是把一个字段较多的表,拆分成多个字段较少的表;上文中也说过单表的字段不宜过多,如果初期的表结构设计的就很好,就不会有垂直拆分的问题了;一般来说,MySQL单表的字段最好不要超过二三十个。

水平拆分:就是我们常说的分库分表了;分表,解决了单表数据过大的问题,但是毕竟还在同一台数据库服务器上,所以IO、CPU、网络方面的压力,并不会得到彻底的缓解,这个可以通过分库来解决。水平拆分优点很明显,可以利用多台数据库服务器的资源,提高了系统的负载能力;缺点是逻辑会变得复杂,跨节点的数据关联性能差,维护难度大(特别是扩容的时候)。

希望我的回答,能够帮助到你!我将持续分享Java开发、架构设计、程序员职业发展等方面的见解。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中国哪个欢乐谷最好玩 word文档盖章怎么去掉 55岁老年 手背上先出现粉色的斑点,之后变成了老年斑,是什么原因? 能预 ... 手臂上了很多很多的小黑点请问是否是老年斑呢?可以医治吗? ...斑的东西,可是我今年才31岁啊,有没有必要去医院查一下? ...岁、手背上怎么长老年斑了呢、有什么好办法? 苹果7为什么手机上面有个耳机图标 ...女人发生关系不止一次,我每天心里都难受怎么办? windowsxp哪有下载? 晚上睡觉突然感觉心脏像是要停止了,上半身崩紧,意识模糊。是什么... 智能风速传感器采集什么信号 选派的近义词选派的近义词是什么 指派的近义词指派的近义词是什么 派系的近义词派系的近义词是什么 “ 诔文”一词做何解?? 皤然的引证解释皤然的引证解释是什么 抛撒的网络解释抛撒的网络解释是什么 撒尼族的网络解释撒尼族的网络解释是什么 父本为什么有柱头 阿育王狮子柱头的意义 第四章 第四节 孔雀帝国(BC324-BC187) 扑撒的国语词典扑撒的国语词典是什么 抛撒的国语词典抛撒的国语词典是什么 ...庖丁解什么中豪杰 精益求什么阔天空 横七竖什么市蜃 2022长春南关法院分数 长春法律职业资格的报考条件是什么? 总是给你发在吗?你回复了她又不说话了,最近天天这样 你为什么又不说话了 旷坠的解释 台风的危害方式 台风天在家注意事项 蜃壁的解释 不思议迷宫哪些冈布奥值得升6星 《不思议迷宫》火焰巨人冈布奥属性介绍 如何辨别翡翠珠子怎么样辨别翡翠珠子 薄荷软件解锁需要亲一下解锁的那个软件密码 皤然的成语皤然的成语是什么 ...管理专业毕业,已毕业6年了,请问可以报一级建造师吗, 裒积的词语裒积的词语是什么 裒合的解释裒合的解释是什么 20坎什么意思 坎帕拉的读音坎帕拉的读音是什么 为什么坎儿井越来越少? 奸商狡诈什么意思打一个精准生肖 旷神怡什么意思? 百多利极速能量有奖吗 百多利极速能量为什么便宜 平时爱运动喝能量饮料真的能快速恢复体力吗? 屯垦的读音 土坯的引证解释土坯的引证解释是什么 培土的引证解释培土的引证解释是什么