1、请谈谈sql优化

通常会使用explain去分析我们的SQL语句,主要看一下type和extra,在type中显示的访问类型(system>const>eq_ref>ref>range>index>all),在extra中,显示using filesort和using temporary是不好的,出现using index表示使用到了覆盖索引,如果同时出现using where表明索引被用来执行索引键值的查找。其次,我们会进行一些优化避免索引失效,常用的有:1、全字段匹配(where中的查询条件最好能使用索引的全部字段,保证顺序和创建索引的顺序一样)、2、最佳左前缀法则(索引了多列,查询从最左的字段开始,并且不跳过索引中的列)、3、不在索引上做任何操作,(计算等)会导致索引失效、4、尽量使用覆盖索引,不要使用select * 5、存储引擎不能使用索引中范围条件的右边列 6、mysql使用!=和<>会导致索引失效。

2、MYSQL中处理插入过程主键或唯一重复值的解决办法:

1.IGNORE:有则忽略,无则插入
2.REPLACE:有则删除再插入,无则插入
3.ON DUPLIACATE KEY UPDATE:有则更新,无则插入