公司新項目,要使用 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 比較,差的遠了。
主要是免費!
?