鎖的相關操做 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