最近刚接手一个项目,从业务端优化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 性能优化--记录一相关推荐

  1. mysql 主键查询性能_MySQL查询性能优化(精)

    MySQL查询性能优化 MySQL查询性能的优化涉及多个方面,其中包括库表结构.建立合理的索引.设计合理的查询.库表结构包括如何设计表之间的关联.表字段的数据类型等.这需要依据具体的场景进行设计.如下 ...

  2. php mysql 压力测试_MySQL的性能基线收集及压力测试

    建立基线的作用: 计算机科学中,基线是项目储存库中每个工件版本在特定时期的一个"快照". 比如我们现在有并发事物,那么在某时刻发起一个事物会产生当前数据的快照,那么这个快照就相当理 ...

  3. mysql 限定查询_MySQL Limit 限定查询记录数

    MySQL Limit 限定查询记录数 MySQL LIMIT MySQL 中 LIMIT 关键字用于限定查询记录返回最大数目. 语法: ... LIMIT offset , rows 该语法中,of ...

  4. mysql易百_MySQL如何选择随机记录?

    在本教程中,您将学习从MySQL的数据库表中选择随机记录的各种技术方法. 有时我们需要从表中选择随机记录,例如: 在博客中选择一些随机帖子,并在侧栏中显示. 在"每日报价"窗口小部 ...

  5. mysql text查找性能_MySQL TEXT字段性能

    I now know that TEXT fields are written to disk rather than in memory when queried 仅当查询需要临时表来存储多个排序或 ...

  6. mysql 前索引_MySQL查询性能优化前,必须先掌握MySQL索引理论

    数据库索引在平时的工作是必备的,怎么建好索引,怎么使用索引,可以提高数据的查询效率.而且在面试过程,数据库的索引也是必问的知识点,比如: 索引底层结构选型,那为什么选择B+树? 不同存储引擎的索引的体 ...

  7. mysql配置性能_MySQL配置性能优化

    下面配置的优化,可能影响比较大,可能可以显著提高读写性能. 1.mysql一些主要配置项介绍: innodb_buffer_pool_size 这是你安装完InnoDB后第一个应该设置的选项.缓冲池是 ...

  8. mysql执行计划性能_MySQL SQL性能分析Explain执行计划

    一. 执行计划返回信息详解 ①. 执行计划所含字段 输出列含义id查询标识 select_type查询类型 table查询涉及的表 partitions匹配到的分区信息 type连接类型 possib ...

  9. mysql引擎测试_mysql引擎性能简单测试

    [硬件配置] CPU : AMD2500+ (1.8G) 内存: 1G/现代 硬盘: 80G/IDE [软件配置] OS : Windows XP SP2 SE : PHP5.2.1 DB : MyS ...

  10. mysql 缓存监控_MySQL监控性能的一些方法总结

    ---首先, Oracle中的逻辑读对应物理读的概念,是在利用数据缓存区的技术上,对数据访问次数的计数分类.---物理读,真正有IO:逻辑读,是从缓存区读到数据,可以考察缓存区的命中率,但只是某个具体 ...

最新文章

  1. qtablewidget限制输入类型_对敏感型电子信号输入实施过压保护的可靠新方法
  2. iptables防火墙的基本配置
  3. 学习Caffe(二)使用Caffe:Caffe加载模型+Caffe添加新层+Caffe finetune
  4. eclipse中通过search打开第二个文件时 第一个文件就自己关闭了
  5. Interllij IDEA 搭建Springboot(一)
  6. colormap保存 matlab_Matlab教程 | 利用NC文件进行相关系数场的计算及绘制
  7. Die notwendige Evolution menschlichen Verhalten
  8. 域名和IP地址并用的理由
  9. 记事本编写Java代码
  10. 利用Python一键爬取上海二手房信息
  11. 学习笔记 Tianmao 篇 recyclerView 辅助的RecycleAdapterImpl类(适配自定义home二型)
  12. USB调试助手功能完善
  13. 熊博士c语言,InstallShield2015制作安装包----------安装后实现电脑开机自启动
  14. 数组、单链表和双链表介绍 以及 双向链表的C/C++/Java实现
  15. 2021东南亚跨境电商平台之马来西亚热门电商平台排名TOP10
  16. html+游戏转盘,javascript+HTML5 Canvas绘制转盘抽奖
  17. html5 undefined,JS中typeof() !== undefined'是什么意思
  18. 如何使用Python从视频中提取图像?(帧提取)详细代码实现
  19. AMD发布23.2.1 新驱动 支持开年新作《魔咒之地》
  20. Linux入门学习——ssh基础操作

热门文章

  1. Elite Model的NetSuite ERP国内成功实例!
  2. 设计模式之一(单例模式)
  3. 医学遗传学词汇英语术语英文(Glossary) 5
  4. 搭建Web和FTP站点
  5. 268、缺失数字(python)
  6. unity资源面数规范
  7. java 既不是内部命令也不是外部命令的解决办法
  8. 谈一下UI框架经常看到Vue的.sync修饰符
  9. adb 安卓模拟器 进程端口_Frida初体验安卓CTF逆向
  10. 基于php和服务器推技术的web即时聊天系统,基于php和服务器推技术的Web即时聊天系统-计算机系统应用.PDF...