mysql 調優可能用到的參數

鎖的相關操做
show open tables;
lock table tb_item read ,tb_content WRITE;
UNLOCK TABLES;

order by發送filesort的對應策略
1,給order by字段添加索引
2,調高sort_buffer 使得可以將數據一次性都讀進buffer,太小會致使溢寫到不少tmp文件到磁盤
3,調高max_length_for_sort_data 大小

查看錶狀態
show status like 'table%'

若是索引使用不當,可能致使行鎖變表鎖,好比:在更新索引字段爲string但在傳參時傳入的是int類型,則會致使行鎖變表鎖

當咱們用範圍條件而不是相等條件檢索數據,並請求共享或排他鎖時,InnoDB會給符合條件的已有數據記錄的索引項加鎖;對於鍵值在條件範圍內但並不存在的記錄,叫作「間隙(GAP)」,InnoDB也會對這個「間隙」加鎖,這種鎖機制就是所謂的間隙鎖(GAP LOCK)

鎖定具體一行
select * from tb_user u where u.id=9 for update;
提交之後會自動釋放鎖

 

查看數據的默認隔離級別
show VARIABLES like 'tx_isolation'
對索引的誤操做可能致使表鎖

查看性能
show profiles
查看指定行的性能
show profile cpu ,block io for query 18

查看innodb 鎖的詳情
show status like 'innodb_row_lock%';

mysql主從複製mysql

master配置sql

slave 配置上數據庫

受權給一個用戶讓其能夠從master上覆制數據
GRANT replication SLAVE on *.* TO 'zhangsan'@'從機器數據庫ip' IDENTIFIED by '1234'

查看master數據的狀態
show MASTER status;

根據上面的數據配置slave
GRANT MASTER TO MASTER_HOST='192.168.43.12',
MASTER_USER='zhangsan',
MASTER_PASSWORD='1234',
MASTER_LOG_FILE='mysqlbin.00035',
MASTER_LOG_POS=323

啓動slave
start slave

查看slave狀態
show slave status;

slave_io_running和slave_sql_running 必須爲yes,不然仍是配置失敗

中止從數據庫
stop slave

GRANT replication SLAVE on *.* TO 'zhangsan'@'從機器數據庫ip' IDENTIFIED by '1234'bash

相關文章
相關標籤/搜索