mysql text 性能_MySQL - text 性能优化--记录一
最近刚接手一个项目,从业务端优化DB是最值得做的一件事。
项目存在赶工的现象。很多功能和优化都放到了最后。当玩家都反应游戏卡的时候,大家都招架不住啦。。。。
言归正传:对于含有TEXT字段类型的表,必须独立成一张表。
有一张表,含有12个字段并包含mediumtext 的字段,这是让人最纠结的。刚上线的一段时间,其他表都在M级别,而含text类型的表已经到达23G!!!
由于该表只是提供给前端战斗计算的数据,并且后期可能跟踪战斗记录。所以很多数据都是可以删除的。
优化方案: 1、分表, 将该字段 独立成单表。应用端多一次查询(开发和DBA都要做修改)。
2、删表, 定期额删除部分数据,并进行optimize (DBA一端就可以搞定)
3、上NOSQL,用redis 这样的 KV存储系统,应该会更高效些。
4、最优办法:对玩家战斗记录计算数据,保存在 memcached中,完全不需要DB(最优,技术要求最高的一个,)
目前采用的是第二种方式,对于第四种方式,是因为应用端无法实现,(经常有手动清空内存个的情况,对此表示遗憾。)
删除方式:写了一个存储过程,一部分一部分的去删除数据。这样可以避免slave因为一个大事务而拖死。
CREATE PROCEDURE `del_sleep`(num int)
begin
declare a int default 1;
while a<=num do delete from user_fight_xml limit 100;
select sleep(1); set a=a+1;
end while;
end$$
optimize table 回收空间,碎片整理的时候,提示以下信息:
note | Table does not support optimize, doing recreate + analyze instead
status | OK
刚开始不解:为什么会替换为 recreate+analyze ,通过查询文档:
对于MyISAM表来说:
1、对于delete情况,会进行repair
2、索引页排序
3、表的更新为最新(the repair could not be accomplished by sorting the index)
对于InnoDB来说,会被映射为 alter table,所以会是 recreate + analyze的情况
如果不想写入slave的话,可以使用 NO_WRITE_TO_BINLOG 关键字!
mysql text 性能_MySQL - text 性能优化--记录一相关推荐
- mysql 主键查询性能_MySQL查询性能优化(精)
MySQL查询性能优化 MySQL查询性能的优化涉及多个方面,其中包括库表结构.建立合理的索引.设计合理的查询.库表结构包括如何设计表之间的关联.表字段的数据类型等.这需要依据具体的场景进行设计.如下 ...
- php mysql 压力测试_MySQL的性能基线收集及压力测试
建立基线的作用: 计算机科学中,基线是项目储存库中每个工件版本在特定时期的一个"快照". 比如我们现在有并发事物,那么在某时刻发起一个事物会产生当前数据的快照,那么这个快照就相当理 ...
- mysql 限定查询_MySQL Limit 限定查询记录数
MySQL Limit 限定查询记录数 MySQL LIMIT MySQL 中 LIMIT 关键字用于限定查询记录返回最大数目. 语法: ... LIMIT offset , rows 该语法中,of ...
- mysql易百_MySQL如何选择随机记录?
在本教程中,您将学习从MySQL的数据库表中选择随机记录的各种技术方法. 有时我们需要从表中选择随机记录,例如: 在博客中选择一些随机帖子,并在侧栏中显示. 在"每日报价"窗口小部 ...
- mysql text查找性能_MySQL TEXT字段性能
I now know that TEXT fields are written to disk rather than in memory when queried 仅当查询需要临时表来存储多个排序或 ...
- mysql 前索引_MySQL查询性能优化前,必须先掌握MySQL索引理论
数据库索引在平时的工作是必备的,怎么建好索引,怎么使用索引,可以提高数据的查询效率.而且在面试过程,数据库的索引也是必问的知识点,比如: 索引底层结构选型,那为什么选择B+树? 不同存储引擎的索引的体 ...
- mysql配置性能_MySQL配置性能优化
下面配置的优化,可能影响比较大,可能可以显著提高读写性能. 1.mysql一些主要配置项介绍: innodb_buffer_pool_size 这是你安装完InnoDB后第一个应该设置的选项.缓冲池是 ...
- mysql执行计划性能_MySQL SQL性能分析Explain执行计划
一. 执行计划返回信息详解 ①. 执行计划所含字段 输出列含义id查询标识 select_type查询类型 table查询涉及的表 partitions匹配到的分区信息 type连接类型 possib ...
- mysql引擎测试_mysql引擎性能简单测试
[硬件配置] CPU : AMD2500+ (1.8G) 内存: 1G/现代 硬盘: 80G/IDE [软件配置] OS : Windows XP SP2 SE : PHP5.2.1 DB : MyS ...
- mysql 缓存监控_MySQL监控性能的一些方法总结
---首先, Oracle中的逻辑读对应物理读的概念,是在利用数据缓存区的技术上,对数据访问次数的计数分类.---物理读,真正有IO:逻辑读,是从缓存区读到数据,可以考察缓存区的命中率,但只是某个具体 ...
最新文章
- qtablewidget限制输入类型_对敏感型电子信号输入实施过压保护的可靠新方法
- iptables防火墙的基本配置
- 学习Caffe(二)使用Caffe:Caffe加载模型+Caffe添加新层+Caffe finetune
- eclipse中通过search打开第二个文件时 第一个文件就自己关闭了
- Interllij IDEA 搭建Springboot(一)
- colormap保存 matlab_Matlab教程 | 利用NC文件进行相关系数场的计算及绘制
- Die notwendige Evolution menschlichen Verhalten
- 域名和IP地址并用的理由
- 记事本编写Java代码
- 利用Python一键爬取上海二手房信息
- 学习笔记 Tianmao 篇 recyclerView 辅助的RecycleAdapterImpl类(适配自定义home二型)
- USB调试助手功能完善
- 熊博士c语言,InstallShield2015制作安装包----------安装后实现电脑开机自启动
- 数组、单链表和双链表介绍 以及 双向链表的C/C++/Java实现
- 2021东南亚跨境电商平台之马来西亚热门电商平台排名TOP10
- html+游戏转盘,javascript+HTML5 Canvas绘制转盘抽奖
- html5 undefined,JS中typeof() !== undefined'是什么意思
- 如何使用Python从视频中提取图像?(帧提取)详细代码实现
- AMD发布23.2.1 新驱动 支持开年新作《魔咒之地》
- Linux入门学习——ssh基础操作
热门文章
- Elite Model的NetSuite ERP国内成功实例!
- 设计模式之一(单例模式)
- 医学遗传学词汇英语术语英文(Glossary) 5
- 搭建Web和FTP站点
- 268、缺失数字(python)
- unity资源面数规范
- java 既不是内部命令也不是外部命令的解决办法
- 谈一下UI框架经常看到Vue的.sync修饰符
- adb 安卓模拟器 进程端口_Frida初体验安卓CTF逆向
- 基于php和服务器推技术的web即时聊天系统,基于php和服务器推技术的Web即时聊天系统-计算机系统应用.PDF...