公司新项目,要使用 MySQL 数据库。
第一次使用 MySQL,有点小激动。听说过 N 多次,这一次终于用上了。
为什么是奇遇记?
因为在网上几乎搜索不到别人遇到和我一样的问题。
系统 :WINDOWS10X64 中文版
数据库:MySQL 8.0.25
奇遇记一:MySQL 安装
第一次安装、使用,没有什么问题。MySQL、ODBC,一切 OK;
有一天,我卸载了数据库,重新安装,死活安装不上。
经过九九八十一难,我终于发现,是我将操作系统改成了英文的原因。
WINDOWS10 切换界面语言,现在很方便。
由于我偶尔会编译一些开源的东东,需要将操作系统变成英文。
毕竟很多开源代码是老外写的,涉及到编码问题。将操作系统切换成英文,主要是省心。
不知道为什么会给 MySQL 安装带来问题。
当我将操作系统切换回中文后,重启(必须重启),再次安装,成功安装。
MySQL 官网上也没有所谓的多语言版本。MySQL 是个服务,也没有 UI 界面呀。
具体原因不清楚。反正问题解决了。
奇遇记二:truncate
truncate 是清空表的。正常情况下,速度都是很快的。毫秒级的。
项目数据库中有个存储过程,在数据库发布时,清空数据库中,一些表中的测试数据。很简单的存储过程。
SQL Server 中也这样使用。从来没有出现过问题。
但是,MySQL 中,这么一个简单的存储过程也会出问题。
truncate 在清空一些表时,速度会很慢。很慢很慢。清空 20 张表,需要 10 秒之久。
我在公司其它电脑上测试,也是如此。很慢。
我在技术论坛中,和其它人讨论,都说没有遇到这种问题。
我最后测试发现在一些高配置的笔记本电脑上,不会有这个问题。
公司的台式电脑一般配置都不高,个人笔记本相对高点。
在公司同事,几台高配置的笔记本上,测试,都没有此问题。配置低的笔记本,问题依旧。
确定是 MySQL 挑设备了。
关键是这些电脑用 SQL server 没有任何问题呀。
问题原因找到了。只能提高机器配置了。
奇遇记三:插入记录
有一天,突然发现正常运行很多天的一个插入记录代码,出错了。
错误日志:1026: Error writing file 'binlog' (errno: 2 - No such file or directory)
这肯定是数据库的问题,不是代码问题。
MySQL 官网的解释:
“pls check tmpdir directory is there or the disk usage,binlog cache size is allocate per thread,
if there is big txn that binlog cache already write full then it will flush to tmpdir,if tmpdir is full then you will receive above error.”
翻译下:
“请检查 tmpdir 目录是否存在或磁盘使用情况,binlog 缓存大小是为每个线程分配的,
如果有大 txn binlog 缓存已经写满,那么它将刷新到 tmpdir,如果 tmpdir 已满那么您将收到上述错误。”
这得去折腾 MySQL 数据库了。
这就是所谓的调优了。网上关于 MySQL 调优的文章一大把。
MySQL 和 SQL server 比较,差的远了。
主要是免费!