蕭蕭從恩inebifurai.hashnode.dev·Mar 2, 2023 · 1 min read探討系統時間與應用程式的影響:網路協定、誤差、以及正確使用方法上一集我們討論了MySQL Timestamp 的精準度,提到了不同主機之間很有可能有時間差異,那這個時間差會有多大? 在電腦和許多微控器裡面都有一個 RTC 晶片,利用石英振盪器提供系統時間。這個RTC在一班桌上型電腦上就是裝在主機板上,和BIOS一起用水銀電池供電。所以如果那個電池如果沒電了,BIOS設定都會跑掉,時間也會被重設。 關於石英振盪器,這裡有一篇Analog Devices的文章解釋石英振盪器的原理以及誤差。 在 Linux 上,我們可以利用 hwclock獲取時間。但是這件事...00
蕭蕭從恩inebifurai.hashnode.dev·Feb 25, 2023 · 2 min readMySQL的Timestamp準確度、快取應用的雷點MySQL是常用的關聯式資料庫管理系統,其中Timestamp類型是一種用來儲存日期和時間的資料類型。在定義Timestamp欄位時,如果不定義準確小數點 的話,預設只到秒,且會四捨五入。 比如以下的資料表定義,就明確定義了到小數點下6位也就是微秒精度。 CREATE TABLE `services` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `start_time` timestamp(6) NOT NULL DEFAULT CURR...00
蕭蕭從恩inebifurai.hashnode.dev·Sep 5, 2022 · 3 min readSpring Boot 的 Redis 設定與更改 JedisCluster 建構方式前陣子工作上需要調 Jedis 的 maxTotalRetiresDuration ,但這是 Jedis 新加的選項,還沒被整合到 Spring Data Redis。所以需要手動去做一些設定。對 Redis 在 Spring Boot 上的設定做了一些調查,這邊筆記一下。 Change the Constructor Call of JedisCluster 我需要 call 在這個PR被加上的建構子。 public JedisCluster(Set<HostAndPort> jedisClu...00
蕭蕭從恩inebifurai.hashnode.dev·Sep 2, 2022 · 1 min read不要在 Production MySQL Server 上刪除資料表(< 8.0.23)背景 前陣子團隊裡在討論,有用不到的 Table 要刪掉,是否要用一個月一次深夜停機的時段。我們團隊裡資深的同事表示他記得會有整個 DB 的 Lock 。我就想,照官方文件,Online DDL 應該不影響其他操作啊,而且也是針對該資料表。那平常的時間就可以刪啦? 不過又多做了一些搜尋,發現果然薑還是老的辣。。。 看到了這篇文章: Why you simply don't drop a huge InnoDB table in production... DROP table 會怎樣? 那篇文...00
蕭蕭從恩inebifurai.hashnode.dev·Aug 23, 2022 · 1 min readSpring profilesConfig In application.properties spring.profiles.active=prod Activate multiple profiles: spring.profiles.active=local,test @Profile Annotation Make a component/configuration class / bean available in certain profiles. @Profile annotation Javadoc @Con...00