1.引擎:
1.1查看引擎:
mysql> show engines;
mysql> SHOW VARIABLES LIKE '%storage_engine%';
mysql> show create table t1; ---查看建表信息
1.2?臨時指定引擎:
mysql> create table innodb1(id int)engine=innodb;
1.3修改默認引擎:
/etc/my.cnf
[mysqld]
default-storage-engine=INNODB ----引擎
修改已經存在的表的引擎:
mysql> alter table t2 engine=myisam;
mysql常用命令:
? ? mysql> show warnings ? ?查看最近一個sql語句產生的錯誤警告,看其他的需要看.err日志
? ? mysql> show processlist 顯示系統中正在運行的所有進程。
? ? mysql> show errors ? 查看最近一個sql語句產生的錯誤信息
2.字符集設置
2.1?臨時設置字符集
mysql> create database db1 CHARACTER SET = utf8;mysql> create table t1(id int(10)) CHARACTER SET = utf8;
查看當前使用的字符集
mysql> SHOW VARIABLES LIKE 'character_set_%';
2.2永久修改字符集設置:(5.7/ 5.5版本)
[mysqld]
character-set-server=utf8mb4 #設置MySQL服務器的默認字符集為utf8mb4
collation-server=utf8mb4_unicode_ci #設置服務器的默認排序規則
[client]
default-character-set = utf8mb4 #所有客戶端工具的默認字符集設置
[mysql]
default-character-set=utf8mb4 #專門針對mysql命令行客戶端的字符集設置
3.慢查:
查看是否設置成功:mysql> show variables like '%query%';
當連接數的數值過小會經常出現ERROR 1040: Too many connections錯誤。
這是是查詢數據庫當前設置的最大連接數
mysql> show variables like '%max_connections%';
強制限制mysql資源設置:
# vim /etc/my.cnf
max_connections = 1024 并發連接數,根據實際情況設置連接數。
connect_timeout= 5 單位秒 ----超時時間,默認30秒
wait_timeout=10 終止空閑時間超過10秒的鏈接,避免長連接
max_connect_errors=10 10次連接失敗就鎖定,使用flush hosts 解鎖,或mysqladmin flush-hosts -uroot -p'密碼'解鎖
優化方案
1.開啟慢查詢 ?---分析sql語句,找到影響效率的 SQL?
2.創建索引 ? --提升數據的檢索效率
4.innodb引擎:
innodb-buffer-pool-size ? //緩存 InnoDB 數據和索引的內存緩沖區的大小
innodb-buffer-pool-size=# ? ----值 ? ??
?這個值設得越高,訪問表中數據需要得磁盤 I/O 越少。在一個專用的數據庫服務器上,你可以設置這個參數達機器物理內存大小的 80%。
# vim /etc/my.cnf
innodb-buffer-pool-size=2G
5.查看mysql基本狀態
[root@mysql-master ~]# mysqladmin status -uroot -p'Liuliu@123!'
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Uptime: 23963 Threads: 12 Questions: 1365 Slow queries: 0 Opens: 117 Flush tables: 1 Open tables: 110 Queries per second avg: 0.056uptime 啟動時間
Threads 線程數量,(打開的會話)
Questions 所有查詢的數量
Slow queries 慢查詢是否打開
Opens 服務器已經打開的數據庫表的數量
flush tables 執行清空表的緩存次數
Open_tables 通過命令打開的表的數量
Queries per second avg:select語句平均查詢時間log_queries_not_using_indexes = 1 # 記錄未使用索引的查詢
sync_binlog=1 #控制 Binlog 刷盤頻率數據安全:設為 1(每次提交同步)性能優先:設為 0(由系統決定
mysqldumpslow -s t /var/log/mysql/slow.log # 慢查詢日志分析工具
6.mysql監控項
監控項 ? ? ? ?含義?
磁盤空間 ? ? ? ?實例的空間占用歷史趨勢,單位GB
連接數 ? ? ? ? ?當前總連接數
CPU使用率 ? ? ? mysql實例CPU使用率(占操作系統總數)
數據庫的連接數
mysql的主從同步狀態
主從延遲時間
進程、端口等