我们正在开发一种企业产品,它在Windows上使用MySQL 5.6来存储由多个客户端生成的报告。我们的数据库包含大约20个表,每个表包含从几十万到几百万的记录。所有表都包含10多列,包含数字和文本数据。所有表都使用innodb引擎,数字字段作为主键。这些表在另一个数字字段上建立索引,与主键不同。
大约有10个连接用于将新数据合并到数据库中。数据通过Web控制台查看。对查看数据的实例数量没有限制。我们在表中也没有任何引用/外键,因此我们不使用连接。
我们还没有创建用于获取数据的存储过程。商店程序真的能提高性能吗?
在互联网上搜索解决方案时,我发现如果我们更改my.ini / my.cnf文件中innodb_buffer_pool_size,read_rnd_buffer_size,sort_buffer_size等字段的值,那么我们可以提高性能并最大限度地减少mysql的内存需求。但我对此并不自信,因为我不知道它应该是什么,它的副作用是什么。目前我保留了默认配置。请告诉我在配置文件中可以更改哪些值,以提高性能并最大限度地减少内存需求,而不会产生任何副作用。
我还想了解其他一些优化和优化的方法。微调MySQL引擎,提高性能和使用最佳资源。
我们产品的最低软件/硬件要求是:
答案 0 :(得分:0)
在任何数据库中都没有为性能定义的预定义值,如果它们存在,则它们已在默认配置中使用。
所以第一次考虑架构设计。如果您的架构设计得很好,那么您已经解决了一半的问题。 从您的描述模式看起来很好,因为您已经应用了索引,没有连接等。
首先使用Mysql引擎提供的默认设置尝试您的应用程序。 然后对您的应用程序的关键/广泛使用/资源密集型工作流程进行性能测试。 (这些术语的定义因应用而异。)
如果您在数据库端发现性能瓶颈,请尝试下面的内容,
希望这很有用。