Home » Computer » Software » Archive by category "Database"

Aurora Serverless MySQL 進入 GA

AWS 宣佈能 auto-scale 的 Aurora Serverless MySQL 進入 GA:「Aurora Serverless MySQL Generally Available」:

不過目前開放的區域有限:

Aurora Serverless for Aurora MySQL is available now in US East (N. Virginia), US East (Ohio), US West (Oregon), Europe (Ireland).

以秒計費,但低消是 5 分鐘:

You pay a flat rate per second of ACU usage, with a minimum of 5 minutes of usage each time the database is activated.

us-east-1 的價錢來看,每個 ACU 是 USD$0.06/hour,而每個 ACU 大約是 standard instance 的價錢:

1 ACU has approximately 2 GB of memory with corresponding CPU and networking, similar to what is used in Aurora Standard instances.

但這沒看懂,是 db.t2.small 還是 db.t2.medium?另外比較是全速還是 small 的 20% 或 medium 的 40%?這部份也許還要再問看看才知道...

storage 與 I/O 的費用則是相同,倒是不用比較這塊... 再來不知道有沒有推出 Reserved ACU 的計畫,光是一年付清就差蠻多的。

要不要換過去其實還是要看看使用的量,以及可以接受的成本來決定...

從 Aurora 同步到 EC2 上的 MySQL

Percona 這篇「How to Set Up Replication Between AWS Aurora and an External MySQL Instance」講怎麼設定 Amazon Aurora,把資料同步到外部的 MySQL instance。

其中最重要的應該是你需要透過 snapshot 建出 consistent backup,然後用這份資料去接 Aurora 的 master server:

Create a snapshot and restore it (create a new instance from a snapshot). This is only needed to make a consistent copy with mysqldump. As Aurora does not allow “super” privileges, running mysqldump --master-data is not possible. The snapshot is the only way to get a consistent backup with the specific binary log position.

能拉出來後續就能做很多事情...

MySQL 裡 performance_schema 對效能的影響

最近在弄 MySQLperforemance_schema,開起來後發現效能影響沒有很大,跟印象中不太一樣... 找了一下文章發現 Percona 在 2017 年年初時有針對效能測試過:「Performance Schema Benchmarks: OLTP RW」。重點在這張圖:

圖上可以看到 Default 其實對效能的影響有限,另外文章也整理出來,有哪些設定對效能影響不會太大,可以考慮平常就開著:

Using Performance Schema with the default options, Memory, Metadata Locks and Statements instrumentation doesn’t have a great impact on read-write workload performance. You might notice slowdowns with Stages instrumentation after reaching 32 actively running parallel connections. The real performance killer is Waits instrumentation. And even with it on, you will start to notice a performance drop only after 10,000 transactions per second.

在 Ubuntu 18.04 (Bionic) 上跑 Percona Server 5.7

Percona 的文件「Installing Percona Server on Debian and Ubuntu」這邊雖然還沒列 Ubuntu 18.04 上去,但已經有東西在裡面可以安裝了。不過還是屬於官方未正式支援的情況,用的時候自己要注意。

另外查資料的時候有看到「Ubuntu 18.04 (bionic) - percona-xtradb-cluster-server installation break」這篇提到 Percona XtraDB Cluster 裝不起來,但有 workaround 可以硬裝進去,要玩的人也可以參考一下 XD

這樣可以把 14.04 機器換一換了。(先前清點時本來以為已經是 16.04,做一些操作時才發現是 14.04...)

MySQL 版本的 Amazon Aurora 會將各種記錄丟到 CloudWatch Logs 了...

剛好今天才被問是不是可以在 Amazon Aurora (MySQL-Compatible Edition) 裡面翻出有哪些 Slow Query,剛好想到這幾天發表了這個功能:「Amazon Aurora Publishes General, Slow Query and Error Logs to Amazon CloudWatch」。

You can now configure the MySQL-compatible edition of Amazon Aurora to publish general logs, slow query logs, and error logs to Amazon CloudWatch Logs. Previously, you could only publish audit logs.

看起來是要另外開 (畢竟 CloudWatch Logs 不是免費的 XD),不過以這類型的 log 產生速度與數量來說應該還行...

PostgreSQL 的 Amazon RDS Database Preview Environment

AWS 推出了 PostgreSQL 試爆場讓大家測試 XDDD:「Amazon RDS Database Preview Environment is now available」。

可以測還沒有正式 release 的版本:

The Amazon RDS Database Preview Environment is now available, offering an environment for customers to easily test beta, release candidate, and early production versions of PostgreSQL database engine software with the convenience and flexibility of Amazon RDS.

這個產品定位有點奇怪...

最近開的課程:程式進階效能優化實作

五倍紅寶石聊了蠻多方向的,決定合作開一門跟資料庫有關的課。上個禮拜先貼連結到我的 social network 上,但一直沒寫文章說明內容。所以就來寫文章推銷了:「| 五倍紅寶石 | 程式課程:💎SQL 程式進階效能優化實作 - 台北假日班 | Accupass 活動通」。

這門課程預定在 5/26 與 6/2 上課,共 12 小時,分成兩個週六上課。課程主要是以 MySQLInnoDB 為內容 (會採用 Percona Server 5.7 的系統),在課堂上會有實際的 MySQL server 與 phpMyAdmin,可以拿預載好的 data set 實際練習。

由於是效能改善的主軸的課程,會從圍繞與效能有關的主題說明:

  • 有哪些資料結構可以使用。像是 VARCHARCHAR 的差異,以及對 Index 的影響。
  • 怎麼樣設計出符合正規化規範的表格,以及使用與不用的時機。
  • 當表格正規化後,有哪些方式可以取得資料。像是各式的 JOIN、GROUP BY 以及 subquery。
  • 在系統內 Index 要怎麼下才會有效率。
  • 怎麼看 MySQL 對一組 SQL query 的解讀,這邊會針對 EXPLAIN 的操作以及輸出結果。
  • 常見的效能問題,像是 ORDER BY RAND()、N+1 以及 LIMIT N,20 造成資料庫效能不佳以及改善的方式。

而這門課主要針對兩種客群:

  • 第一種是會對資料庫操作的 Programmer,像是後端工程師,全端工程師,或是 DevOps。由於課程內包括了系統上線前的設計與預防措施,以及上線後遇到狀況時的判讀與排除,對於 Programmer 來說是不可或缺的課程。
  • 第二種是管理資料庫的 DBA。在前期參與規劃資料表格設計時,可以提供精確的建議,以大幅降低後續維運上可能遇到的問題。以及當真的遇到效能問題,或是接手的系統就已經有效能問題時,提供可能的解決方案。

目標是透過這門課程,讓資料庫 (尤其是 MySQL) 被用的更淋漓盡致,而不是單純的遇到效能問題就加大機器。

Archives