定制dnf脚本V:kkzzcz?

注: 这里会公布所有的测试脚本, 测试脚本有不足指出还请指教学习, 如果有朋友有跑出来新的数据, 烦请发一份给我, 谢谢.

, 输出为对比折线图以及各种存储产品的平均每条耗时 .

1: 内存比较图顶端标题有平均每条操作时间

2: 多种存储产品比较图各自的标题后有平均每条操作时间

种产品平均每条数据写入时间为 :

从上面的写入性能来看 , Memcache 最快 , 其次 TCH, 这两个基本在同一数量级 , 而其余三者性能相差比较大 .

种产品平均每条数据写入时间为 :

根据上面写入和读取的性能测试来看 , Memcache, TCH 在游戏数据的存储方面备选 , 由于在查阅资料的过程中 , 发现有观点认为 TCH 在数据量超出内存后会导致性能下降 ,TCB 则性能稳定 , 不受此影响 , 通过下面内存峰值是 TCBTCH 的读取写入性能测试来比较二者 .

从上图对照可以得到结论 : TCH 数据库在数据量超出内存后写入性能会有明显的波动 (0.6).

对比上面两图顶端标题中的平均耗时 : 内存满负荷 261.4e-6, 内存空闲 30.05e-6, 性能差 8 倍左右 , 因此 , 可以得到结论 : TCH 在内存满负荷后性能会下降 8 倍左右 .

TCH 在内存满负荷情况下 , 产生如下性能损耗 : 写入降低为原来的 60% 左右 , 读取性能降低为原来的

从上图可以看出 TCB 的性能比较稳定 , 写入性能与内存消耗几乎无关 .

8 倍左右 , 因此 , 可以得到结论 : TCB 在内存满负荷后性能会下降 8 倍左右 .

TCB 在内存满负荷情况下 , 产生如下性能损耗 : 写入降低为原来的 60% 左右 , 读取性能降低为原来的

TCB, TCH 的内存峰值性能测试数据

由此表格可以看出 , TCB 在内存满时读取上的平均优势为 60e-6 秒左右 ,TCB 的写入性能约为 TCH50%, 由上面图表分析可以证实网上查阅得到的 TCH 在数据量超过内存容量后性能下降 , 但是 , TCB 的读取也会有所下降 , 究其整体运行的性能来看 , TCH 优于 TCB.

, 从另一个角度来看 , Memcache 作为一个纯粹的缓存产品 , 不能够独立的处理数据存储业务 , 因此 , 如果使用 Memcache 作为 key-value 的存储接口 , 那么为了数据的持久化及其安全性 , 必然要使用某种持久化存储工具去实现 .

如果 Memcache 再套一个持久化存储工具 , 那么这中间必然会带来一定的性能损失 , 从另一方面来讲 , Memcache 外加持久化工具 , 必然要增加编程实现上的难度 , 也就是间接的增大项目风险

从安全性方面来讲 , TT 系列的数据库都提供了备份和还原接口 , 能够支持完整备份和增量备份 , 也能够支持指定时间的恢复 ,Memcache 在这一方面也要比 TT.

测试数据量在第一部分讨论过 , 以单表 1.6 亿为准 , 但是 , 由于 Mysql 用来写入测试数据的程序在

TCT 的包含查询仍然能够使用文本索引

图中蓝色为 Mysql, 黑色为 TCT, 此时 , 根据性别检索的条件为 =’’, Mysql 使用索引 , 并且由于是

. 与省市检索一样 , 这里没有用到 sex 索引 .

Mysql 在索引无法使用时 , 表现比 TCT, 但只要能使索引生效 , Mysql 的性能就会高于 TCT, 分析游戏中需要检索排序的数据 :

找人 : 需要对玩家的 nameuid 进行 %% 方式的检索 , 在单独使用这两条检索时 , 无法命中索引 , 但是 , 这种检索的数据量为每玩家一条 , 也就是单表 50-100 万条左右 , 根据经验在这个范围内 Mysql 的全表扫描性能也能满足需求 .

日记 , 系统消息等检索 : 这些表数据量会比较大 , 但是这些表中建立索引都是可以命中的 .

寄售商品 : 与日记 , 系统消息相似 , 索引有效 , 并且数据量更小 .

排名 : 数据量与找人相同 , 但索引有效 .

TCT 在这一方面存在的另一个缺陷是只能支持单表 , 这实际上就导致了单表数据量增大 , 即便对于原本小数据量的表 , 在这种情况下 , 也会变成大数据量 .

10 万次操作 , 每次操作包括以下操作 : 连接 ( 打开连接 , 选择数据库 , 设置数据库编码 ), 一条更新 10 行的 update, 一条取前 10 条的全表扫描检索 ,

按照上述分块 , 操作过程中的平均时间为


一万并发 , 一万请求

版权声明:本文为博主原创文章,遵循 版权协议,转载请附上原文出处链接和本声明。

我要回帖

更多关于 dnf脚本网站 的文章