sql的优化经验
这里解释一下SQL语句的优化的原理
1.指明字段名称,可以尽量使用覆盖索引,避免回表查询,因此可以提高效率
2.字面意思,无需过多赘述。索引就是为了提高查询效率的。
3.图中两条sql直接可以使用union all 或者 union连接。使用union all 的话,就会把两条sql所有符合条件的查询结果直接合并。使用union的话,就会多一步过滤,过滤掉二者的重复项。效率相对较低。
4.避免在where子句使用对字段进行表达式操作,这也是因为可能会造成索引失效。如:1.7中索引失效的第三种情况
5.如下图,这里有两个循环。循环三次的可以看作小表,循环1000次的看作大表。
小表放外面,MySql只需要连接三次数据库,然后在里面执行1000次操作。
而把大表放外面,就相当于要连接1000次数据库!每次执行三次操作。
而使用内连接,就会优先把小表放外面,大表放里面。而左右连接并不会改变顺序(因为编写sql的时候就已经确定了两个表的位置了)。因此优先使用内连接。
当有写操作进来的时候,就会走Master数据库,进行写操作,然后Master数据库再把数据同步到Slave数据库。
当有读操作进来的时候,就直接走Slave进行查询。
从而实现读写分离。