Database 访问数据库的费用有多高?我们多久访问一次?

Database 访问数据库的费用有多高?我们多久访问一次?,database,sqlite,database-connection,Database,Sqlite,Database Connection,我将要为Android编写一个应用程序,它将使用Mysql。 我知道访问数据库的时间非常昂贵,我想知道像即时通讯、在线游戏这样的应用程序访问数据库的频率是多少? 例如,在一场比赛中,我们想保存一个球员在世界上的位置,当他一直在移动的时候 数据库访问实际上不昂贵吗?有没有一种方法可以一直连接到数据库,只需执行实际上不昂贵的请求 或者它真的很昂贵,而且有一些技术可以访问它,例如每X个时间间隔访问一次,同时在本地保存它 我知道我的问题非常笼统,它总是取决于我们需要什么和想要什么。 我的问题之所以出现,

我将要为Android编写一个应用程序,它将使用Mysql。 我知道访问数据库的时间非常昂贵,我想知道像即时通讯、在线游戏这样的应用程序访问数据库的频率是多少? 例如,在一场比赛中,我们想保存一个球员在世界上的位置,当他一直在移动的时候

数据库访问实际上不昂贵吗?有没有一种方法可以一直连接到数据库,只需执行实际上不昂贵的请求

或者它真的很昂贵,而且有一些技术可以访问它,例如每X个时间间隔访问一次,同时在本地保存它

我知道我的问题非常笼统,它总是取决于我们需要什么和想要什么。 我的问题之所以出现,是因为我制作了一个非常简单的登录应用程序,它连接并向数据库发出一个请求,需要1秒(很多!!)才能得到结果,那么在线应用程序怎么能这么快呢


谢谢

这取决于您的设计和要求

1) 大多数应用程序都管理连接池以最小化初始化时间

2) 大多数ORM框架都有外部缓存来提高读取性能。因此,如果您在应用程序中读取大量数据,则不必担心将其存储在本地。在这种情况下,缓存将有效

3) 当您以文件(或)某种格式在本地存储时,也会增加额外的性能延迟


4) 如果您将数据保存在主内存中,那么显然
Game
性能会更好。这就是为什么
玩家更喜欢高端图形卡和超大RAM的原因。

这取决于您的设计和要求

1) 大多数应用程序都管理连接池以最小化初始化时间

2) 大多数ORM框架都有外部缓存来提高读取性能。因此,如果您在应用程序中读取大量数据,则不必担心将其存储在本地。在这种情况下,缓存将有效

3) 当您以文件(或)某种格式在本地存储时,也会增加额外的性能延迟


4) 如果您将数据保存在主内存中,那么显然
Game
性能会更好。这就是为什么
玩家更喜欢高端图形卡和超大RAM的原因。

对于大多数数据库,都可以选择批量插入。很明显,如果您需要长时间的连接,那么即使是很小的开销也会累积。执行单次插入的开销将比批处理的开销更大。唯一的问题是多久一次?。。。。在批量插入之前,您应该测试不插入的频率以及本地存储的信息量。

对于大多数数据库,都可以选择批量插入。很明显,如果您需要长时间的连接,那么即使是很小的开销也会累积。执行单次插入的开销将比批处理的开销更大。唯一的问题是多久一次?。。。。在批量插入之前,您应该测试不插入的频率以及本地存储的信息量。

在回答这个问题之前,我建议您尽可能多地模拟流程,进行基准测试,并为您的用例找到最佳解决方案

e、 g.如果我有一个向数据库提交数据的应用程序,请模拟提交,以便我可以轻松地同时运行多个提交,并查看瓶颈是什么……以及在我使用缓存、复制、索引等时它的比较情况

此外,阅读公司博客也会有所帮助,因为他们经常分享支持使用特定方法的信息

访问数据库的费用有多高? 访问数据库可能是一个非常快速的操作

SELECT 1;    // 0.005 Secs :D
但是,有些情况可能会导致性能低下(读、写和更新缓慢),但有一些相对简单的方法可以解决这一问题

提高SELECT操作性能的最佳方法是 在中测试的一个或多个列上创建索引 查询索引项就像指向表行的指针,允许 用于快速确定哪些行与中的条件匹配的查询 子句,并检索这些行的其他列值

在多个从属设备之间分散负载以提高性能。在里面 在这种环境下,所有写入和更新都必须在主机上进行 服务器但是,读取可以在一个或多个从机上进行。这 模型可以提高写操作的性能(因为主机是 专用于更新),同时大幅提高整个系统的读取速度 越来越多的奴隶

我们多久访问一次? 如果您是单独使用数据库,您将在每次定位和每次需要了解他们的位置时访问该数据库

在这里,您可以探索防止访问数据库的选项

  • 内存缓存,如redis或memcache
  • 复制-仅从从属服务器读取

  • 在回答这个问题之前,我建议尽可能多地模拟这个过程,进行基准测试,这样您就可以为您的用例找到最佳的解决方案

    e、 g.如果我有一个向数据库提交数据的应用程序,请模拟提交,以便我可以轻松地同时运行多个提交,并查看瓶颈是什么……以及在我使用缓存、复制、索引等时它的比较情况

    此外,阅读公司博客也会有所帮助,因为他们经常分享支持使用特定方法的信息

    访问数据库的费用有多高? 访问数据库可能是一个非常快速的操作

    SELECT 1;    // 0.005 Secs :D
    
    然而,也有一些情况会导致性能低下(读、写和更新速度慢),但有一些相对简单的方法可以避免这种情况