MySQL数据库使用时注意事项
建表的角度上
一、合理安排表关系
二、尽可能把固定长度的字段放在前面
三、尽可能使用char 代替varchar
四、分表:水平分和垂直分
在使用sql语句的时候
一、尽可能用where来约束范围到一个比较小范围的程度,好比分页
二、尽可能使用连表查询,而不是使用子查询
三、删除数据或者修改数据的时候尽可能使用主键做为条件
四、合理建立和时候用索引
合理建立和时候用索引
正确使用索引
一、查询的条件字段不是索引字段,对哪个字段建立了索引就对哪个字段作条件查询
二、在建立索引的时候应该对区分度比较大的列进行建立
1/10如下的重复率比较适合建立索引
三、范围
范围越大越慢
范围越小越快
!= 慢
like 'a%' 快
like '%a' 慢
四、条件列参与计算/使用函数
五、and 和 or
多个条件的组合,若是使用and链接,其中一列含有索引,均可以加快查找速度
若是使用or链接,必须全部的列都含有索引,才能加快查询速度
六、联合索引 (最左前缀原则)必须带这最左边的列做为条件,从出现范围开始整条索引失效
(id,name,email)
select * from s1 where id = 1800000 and name = 'eva' and email = 'eva1800000@oldboy';
select * from s1 where id = 1800000 and name = 'eva';
select * from s1 where id = 1800000 and email = 'eva1800000@oldboy';
select * from s1 where id = 1800000;
select * from s1 where name = 'eva' and email = 'eva1800000@oldboy';
(email,id,name)
select * from s1 where id >10000 and email = 'eva1800000@oldboy';
七、条件中写出来的数据类型必须和定义的数据类型一致
select * from biao where name = 666 # 不一致
八、select的字段应该包含order by的字段
select name,age from 表 order by age 比较好
select name from 表 order by age 很差