profile
show profile for query 1;
show profile cpu for query 1;
cpu信息
profile 警告不推荐使用了
推荐用
Performance Schema
Performance Schema
开启
UPDATE ‘setup_instruments‘ SET enabled='YES',TIMED='YES' WHERE NAME LIKE 'stage%';
UPDATE setup_consumers SET enabled='YES' WHERE NAME LIKE 'events%';
执行某个sql
实例
修改表结构
1.对字段类型/宽度修改 会锁表
2.主从数据库延迟
解决
1.切换到从服务器再改一次
2.建一新表,把老表数据同步过去,删除老表用新表重命名代替,好处是只在重命名时加一短暂的锁
alter 要做的修改 update 语句去掉(这里是把c列宽度改成150)
update 表名后的部分
user 用户名 D数据库名 t表名
not in <>
SELECT first_name
FROM customer
WHERE customer_id
NOT IN (
SELECT customer_id FROM payment
)
会多次对payment进行查询
SELECT a.first_name
FROM customer a
LEFT JOIN payment b ON a.customer_id =b.customer_id
WHERE b.customer_id IS NULL
改成LEFT JOIN 就一次了
汇总表优化
如 商品评论数 一般会写
SELECT COUNT(*) FROM product_comment WHERE product_id = 4687
不如建一个汇总表,凌晨时统计一次
CREATE TABLE product_comment_cnt(product_id INT ,cnt INT;
然后之前的查询变为
SELECT SUM(cnt) FROM (
SELECT cnt FROM product_comment_cnt WHERE product_id = 999
UNION ALL
SELECT COUNT(*) FROM product_comment WHERE product_id = 999
AND timestr>DATE(NOW0)
) a