一、left join的ON中多条件AND
1)left join的on条件一般只写一个主键关联的字段,例如:
1 | SELECT * FROM product LEFT JOIN product_details ON product.id = product_details.id; |
1)left join的on条件一般只写一个主键关联的字段,例如:
1 | SELECT * FROM product LEFT JOIN product_details ON product.id = product_details.id; |
mysql8.0增加了performance_schema.data_locks,可以查看Innodb锁状态:
1 | SELECT ENGINE_TRANSACTION_ID trx_id,INDEX_NAME,LOCK_TYPE,LOCK_DATA,LOCK_MODE,LOCK_STATUS |
首先,需要指出的是分库分表会带来更高的复杂度,涉及分布事务,跨库联表,性能下降,配置复杂等问题,不到万不得以不要轻易使用。另外,使用分库分表依据评估3年内的数据量及数据增长趋势,来提前进行分库分表规划,而不是对已有的生产库进行临场变动。
Mysql数据库中的Null是一个特殊的存在,表示该记录没有值,不同于空(’’)和0;
1)应该使用IS NULL或者IS NOT NULL来判断
2)禁止使用<>, <, >, =去检测NULL,因为其结果集永远是空;
mysql5.7以上版本在查看explain时需关闭衍生表优化:
set session optimizer_switch='derived_merge=off'
,否则会隐藏衍生表的信息;