gpt4 book ai didi

php - 优化 innoDB 但我的插入等待彼此

转载 作者:行者123 更新时间:2023-11-29 00:29:26 26 4
gpt4 key购买 nike

我是 MySQL 的新手,刚开始在我的 VPS 上使用 InnoDB 表引擎。

服务器信息:4 x 2.4 ghz,8 Gb 内存,120gb Raid10。

我的.cfg:

[mysqld]
innodb_file_per_table=1
innodb_buffer_pool_size=4G
innodb_log_file_size=512M
innodb_flush_log_at_trx_commit=2

要插入的表有 6 个整数和 1 个日期以及 1 个用于映射的触发器 -> 将每一行插入 1 行到映射表中。

最后一行对加快插入速度有很大帮助(数据库是 80% 的插入/更新与 20% 的读取)。

但是当我做一些测试时,我在 web 浏览器中调用一个 PHP 文件,它将执行 10 000 次插入,大约需要 3 秒(这对于这个硬件来说是快还是慢?)。但是当我打开多个选项卡同时打开PHP文件时,它们的执行时间都是3秒,但它们都在等待对方完成:/

我应该添加哪些设置?或者我应该添加的其他设置以加快插入速度,非常感谢!

最佳答案

每秒 3,300 次插入是相当可观的,尤其是使用触发器时。如果不了解表格,就很难对此有更多了解。

你对提交做了什么?你是在做所有 10K 插入然后提交一次吗?如果是这样,执行类似任务的其他客户端可能会被锁定,直到每个客户端运行为止。那是一个特点!

另一方面,如果您正在使用自动提交,那么您正在使您的 MySQL 服务器流失。

最好的策略是插入 100 或 500 行的 block ,然后提交。

您不应该尝试通过配置设置来解决这种锁定,而是通过调整您的 web php 应用程序来仔细管理事务。

如果您不需要为此应用程序提供可靠的事务语义,您可能需要考虑使用 MyISAM 表。 MyISAM 可以更快地处理大量插入。也就是说,如果您不特别关心读取的是当前数据还是几秒前的数据,那么 MyISAM 将为您提供良好的服务。

关于php - 优化 innoDB 但我的插入等待彼此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17329243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com