MySQL版本
5.7 (配合gcp 的 cloud sql)DB引擎
InnoDBDB規格
character 使用 UTF8mb4collate 使用 utf8mb4_unicode_ci
CREATE DATABASE database_name character set UTF8mb4 collate utf8mb4_unicode_ci;
Table規格
character 使用 UTF8mb4collate 使用 utf8mb4_unicode_ci
CREATE TABLE tbl_name (column_list) ENGINE=INNODB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
my.cnf設定
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci #紀錄slow query log-slow-queries = /var/log/mysql/mysql-slow.log long_query_time = 2 log-long-format key_buffer 能夠把所有index 載入最好
基本優化觀念
至少看以下項目:基本優化方向
基本優化項目
timestamp儲存UTC時間,會依據time zone設定返回不同時間
primary key / index 屬性速度 1boolean > int > char > varchar
雖然MySQL有很多內建函式,但是不會比你程式算的快,而且不好維護。 //使用MySQL內建函式 SELECT * FROM table WHERE DATE_ADD(NOW(),INTERVAL 10 DAY) > create_date; //更好,先算好時間 SELECT * FROM table WHERE DATE_ADD('2019-01-01 00:00:00',INTERVAL 10 DAY) > create_date; //更好,改成int SELECT * FROM table WHERE DATE_ADD(1324335674,INTERVAL 10 DAY) > create_date;
沒有留言:
張貼留言