首先,我正在Android中构建应用程序,并使用PHP作为我的Web服务和数据库通信,我正在使用MySQL数据库。
好的,这是问题: 我正在构建一个Near Real-Time应用程序,我需要每隔5秒在我的数据库中更新一行,同一个表中的每个用户都有不同的行。优化成本的最佳方法是什么? 我的意思是,它适用于10个用户..但我的猜测是,当我得到50-100数据库将崩溃。 另一个重要的问题是带宽,我真的想尽可能少地使用它。
有什么建议吗?如果我将所有请求放入更新特定行的队列中,它会阻止它崩溃吗?我的意思是......在同一时间内仍然会有50个连接到DB ..
答案 0 :(得分:2)
您可能希望使用LZ4(快速数据压缩)来限制带宽。
还应该有一个Java实现,甚至可能是一个用PHP编写的实现
对于MySQL服务器,你应该有一些RAM(24-64Gb狂野猜测)和InnoDB引擎(所以innodb缓冲池可以缓存数据/索引)
如果你有MySQL 5.6,你应该使用InnoDB启用内存缓存,这样你就可以在没有开销的情况下查询"复杂的" SQL解析..
Oracle声称查询可以使用#34; NoSQL"处理快7到9倍。接口
对于高写入环境,你应该有一个带有10K / 15K磁盘或SSD磁盘的RAID 10阵列来处理写入负载,但它也取决于表结构..
注意RAID 5,因为您需要计算奇偶校验位并将其写入每个磁盘,因此会受到写入惩罚。 RAID 10几乎保持RAID 0的写入速度,并使用镜像(RAID 1)保护您的数据
您的MySQL将始终作为线程处理传入连接,因此同时100个查询意味着需要创建100个线程来处理该负载。所以您应该在MySQL配置中正确配置线程。
答案 1 :(得分:1)
好的,所以 - 带宽和数据库使用情况。
第一个很容易。您可能想要尝试确定什么是最佳值。从一开始就要记住一些事情:
关于数据库 - 它可能很棘手,但没有什么是不可能的。一些想法: