索引的使用

对多个列建立了索引,必须从左往右,像爬楼梯一样,中间不能断
MySql高级部分<二>

MySql高级部分<二>
不要用substring等运算操作
MySql高级部分<二>
如果是字符串类型,必须加单引号,不然索引失效
MySql高级部分<二>
少使用select * 这种语句,多使用 select 已经被索引的字段名

MySql高级部分<二>
select 后面既有被索引的字段名,也有没有被索引的字段名 。 这样会降低效率,会出现using index condition ,就是查找使用了索引,但是需要回表去查询所需的数据
MySql高级部分<二>MySql高级部分<二>
要避免回表查询,回表查询效率很低

索引的字段相当于 0 ,没有被索引的字段相当于 1,用or连接时,0 or 1还是 1 ,所以还是没有被索引,那个被索引的字段也就失效了,不会被用到
MySql高级部分<二>MySql高级部分<二>
%加在前面,索引失效,这时候解决方案就是用覆盖索引的方法,将 select * 修改为 select 带有索引的字段 from 表名

MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>

sql优化

MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>
在事务中进行数据插入,如果需要插入的数据量比较大,可以分批的进行插入,比如要插入10万条数据,那么可以每一万条数据开启事务,然后提交,接下来一万条数据,又开启事务,一万条数据插入完成之后,再提交

MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>

or 的两边都必须要有索引,不然不会用到索引
MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>
MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>MySql高级部分<二>

相关文章: