鉴于ChatGPT越来越受欢迎在解决人类的问题,我决定看一个更好的AI的当前状态。同时我看到数据库工程师依赖工具,网站禁止ChatGPT StackOverflow等。来自时间的问题,是我的职业的风险被灭绝由于人工智能吗?我的导师说过,当我开始在科技领域工作,答案是:这取决于。我这样说是因为,此刻,我的答案是一个大的没有。之后,我们将看到,答案是非常通用的,但至少他们在正确的方向上。没什么,然而,禁止下列AI模型是比较聪明的做法,并提供精确的答案。

让我们来看看一些问题我做了一个MySQL DBA通常需要回答在面试过程中。

问题

问:我有一个MySQL服务器500 GB内存;我的数据集是100 GB。我的InnoDB缓冲池需要多大?

ChatGPT:InnoDB缓冲池使用MySQL缓存经常被访问的数据在内存中。建议将缓冲池大小设置为一个值,足够容纳你的整个数据集在内存中。因为你的数据集是100 GB, 500 GB的内存,你可以分配的很大一部分InnoDB的可用内存缓冲池。一般推荐值之间的缓冲池大小的50%到75%的可用内存。在你的案例中,大约375 GB的缓冲池大小(500 GB的75%)应该是一个很好的起点。然而,你应该使用的实际价值将取决于特定工作负载的特征。记住,缓冲池大小设置过高可能导致服务器上的其他进程竞争记忆,从而影响性能。同样重要的是定期监控服务器的内存使用情况,以确保raybet雷竞技竞猜在线官网它不是疲惫的缓冲池。

所以这个答案是不准确和逃避。因为我的数据集是100 gb,我希望看到ChatGPT明确提到一个很好的起点是100 gb。如果我们扩展缓存概念,缓冲池可能会更少,如果工作集(热数据)更小。

问:我有一个MySQL服务器,应用程序是写100 MB /小时的速度在我的重做日志。我的innodb_redo_log_capacity需要多大?

ChatGPT:innodb_redo_log_capacity参数指定的最大大小InnoDB重做日志缓冲区,用于存储更改数据库写入磁盘。重做日志缓冲区的大小应该足够大,以处理可能发生的最大变化时间内更改写入到磁盘。计算所需的重做日志缓冲区大小,您可以使用以下公式:

innodb_redo_log_capacity = (max_rate_of_change * max_redo_log_write_time) / redo_log_block_size

在你的情况下,您提供了最大的变化,就是100 MB /小时。你需要估计的最大时间写更改磁盘和重做日志块大小。假设一个重做日志块大小为512字节innodb_log_block_size(这是默认值),和10分钟的最长时间(0.16667小时)写更改磁盘,将计算如下:[…]

我没有故意粘贴完整的答案,因为这是非常错误的。的innodb_redo_log_capacity是一个从MySQL服务器设置,而innodb_log_block_size是一个从MariaDB设置。另外,重做日志的能力是不一样的重做日志缓冲区,所以它混合了不同的技术和概念。如果你想知道更多关于如何计算一个好的重做日志的大小,看看这篇文章:

MySQL 8.0动态重做日志大小

问:我在MySQL服务器有以下表:

问:我如何优化以下查询:

SELECT * FROM joinit g = 10;

ChatGPT:优化查询SELECT * FROM joinit g = 10;,你可以遵循以下步骤:

添加一个索引g专栏:自克列的查询过滤,添加一个索引列将提高查询的性能。您可以添加索引使用以下命令:

ALTER TABLE joinit添加指数(g);

[…]

答案有一些更多的评论,但这一事实ChatGPT给第一个回答“添加索引”命令是让人印象深刻。

问:我有一个MySQL服务器与10个cpu。我innodb_thread_concurrency理想的数量是什么?

ChatGPT:innodb_thread_concurrency的理想值设置在MySQL中取决于几个因素,包括服务器上的工作负载,CPU核的数量,和可用内存的数量。一般来说,推荐值innodb_thread_concurrency服务器上10 cpu之间通常是16和32。然而,重要的是要注意,最优值可能取决于您的特定工作负载和硬件配置。确定您的服务器的理想值,你可以通过设置innodb_thread_concurrency价值适度的数量(例如,16)和监控服务器的性能。raybet雷竞技竞猜在线官网然后您可以逐渐增加或减少的值基于工作负载优化服务器的性能。[…]

这里的答案是一般的经验法则。如果你有兴趣更多的细节关于这个设置,您可以检查以下博客:

InnoDB线程并发

同时,在这个博客的评论,我的一个同事被建议不相信(这是太棒了!)。他说:

事实上但16到32 10核心服务器可能导致上下文切换焦点国际海事组织数量是不正确的,一个好的起点是设定一个数字小于cpu的数量。所以实际的答案是高度依赖于工作负载(即并发线程运行,持续时间查询,等)

我们可以看到,这个决定不仅是基于一个公式或文档。大部分的知识依赖于经验和教训中面临的问题。此外,辩论与其他工程师允许您收集其他的观点,使解决方案,远不及ChatGPT可以达到。

现在让我们更难。

问:我如何刷新统计数据给我空间在MySQL索引吗?

ChatGPT:在MySQL中,您可以刷新空间索引使用的统计分析表。[…]

这个答案是错的。只有当表重建空间索引的数据刷新。另外,有一个记录错误:

优化表不排序r - tree索引,如空间点列上的索引。(错误# 23578)

问:我有安装MySQL 8在Ubuntu 22.04和我datadir移动到另一个位置。我调整我的文件datadir在my . cnf中所做,但我的数据库不是开始。可能是什么病呢?

ChatGPT:如果你有MySQL数据目录移动到另一个位置和datadir参数配置文件在my . cnf中所做的更新,但MySQL仍然没有开始,可能会有其他需要更新的配置参数。

[…]

这里的答案是通用的。然而,如果我修改我的问题使它更准确:

问:我有安装MySQL 8在Ubuntu 22.04和我datadir移动到另一个位置。我调整我的文件datadir在my . cnf中所做,但我的数据库不是开始。datadir是正确的。可能是什么病呢?

我得到一个更为合理的答案:

ChatGPT:如果数据目录是正确的,没有错误在MySQL错误日志文件中,可能没有正确设置文件权限的新数据目录。[…]

问:我有以下iostat示例:

问:我在I / O问题?

ChatGPT:如果你有I / O问题,需要分析% util列。这一列显示了磁盘的时间百分比很忙在采样周期。高% util值表明磁盘是繁忙的很大一部分时间,这可能表明一个I / O瓶颈。在你的样品中,% util值的范围从1.30到8.40,这是相对较低的值,可能不一定表明I / O问题。

答案可能是更好的。答案并不考虑样品的队列或延迟,这可能表明一个磁盘问题。基本上,ChatGPT只考虑% util列得出答案。

问:我有一个服务器2 NUMA内核。设置可以我在Percona服务器使用更好的内存使用吗?雷竞技下载官网

ChatGPT:如果你有一个服务器2 NUMA核心,您可以使用numa-interleave选项Percona服务器来提高内存使用。雷竞技下载官网

[…]

这个答案仅适用于Percona服务器的旧版本。雷竞技下载官网现在,您可以使用innodb_numa_interleave。我发现在这里将它添加相关,因为我们可以看到,数据集用来喂养AI需要经常刷新提供相关答案。

结论

ChatGPT提供的答案是准确的,但总的来说,有太多的通用信息,不能帮助具体问题。此外,ChatGPT所使用的数据集是很重要的,因为我们可能会收到过时或误导性信息。我们不能盲目地答案,事实上我们需要检查答案需要以前的知识。

ChatGPT仍然可以提供一个很好的起点,尤其是那些从MySQL和Linux。

很多人说我需要提供精确的问题来获得我想要的答案。这是正确的。然而,与我们的客户合作,大部分时间在紧急情况下,他们的唯一信息是,应用程序就会慢下来或没有连接到数据库。所以,在现实世界中,问一个精确的问题是困难的如果你不是一个数据库专家。能够知道正确的问题是一半的路径找到正确的答案。和完成这篇文章,我做了最后一个问题ChatGPT:

问:ChatGPT会取代MySQL DBA的工作吗?

回答:不,ChatGPT是一种人工智能语言模型由OpenAI并不是为了取代MySQL DBA的工作。虽然ChatGPT可以提供某种程度的援助和指导MySQL相关问题,它不能代替知识,专业知识,人类MySQL DBA和决策能力。MySQL DBA负责维护、保护和优化MySQL数据库系统,涉及一系列复杂的任务和决策过程,需要人类的知识和经验。

So, as for now, we are safe !

笑话和恐惧,我不相信技术旨在取代而是帮助我们更有效和奉献时间任务,真正为客户带来价值。我积极和兴奋,看看未来下一年!如果ChatGPT不给你一个合适的答复,随时联系我们在社交媒体或论坛!

有用的资源

最后,您可以通过社交网络联系我们,我们的论坛,或访问我们的材料使用下面的链接:

订阅
通知的
客人

2评论
最古老的
最新的 大多数投票
内联反馈
查看所有评论
fander

用GPT3.5还是GPT4 ?