MySQL數據庫使用時注意事項
建表的角度上
1、合理安排表關系
2、盡量把固定長度的字段放在前面
3、盡量使用char 代替varchar
4、分表:水平分和垂直分
在使用sql語句的時候
1、盡量用where來約束范圍到一個比較小范圍的程度,比如分頁
2、盡量使用連表查詢,而不是使用子查詢
3、刪除數據或者修改數據的時候盡量使用主鍵作為條件
4、合理創建和時候用索引
合理創建和時候用索引
正確使用索引
1、查詢的條件字段不是索引字段,對哪一個字段創建了索引就對哪一個字段做條件查詢
2、在創建索引的時候應該對區分度比較大的列進行創建
1/10以下的重復率比較適合創建索引
3、范圍
范圍越大越慢
范圍越小越快
!= 慢
like 'a%' 快
like '%a' 慢
4、條件列參與計算/使用函數
5、and 和 or
多個條件的組合,如果使用and連接,其中一列含有索引,都可以加快查找速度
如果使用or連接,必須所有的列都含有索引,才能加快查詢速度
6、聯合索引 (最左前綴原則)必須帶這最左邊的列作為條件,從出現范圍開始整條索引失效
(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';
7、條件中寫出來的數據類型必須和定義的數據類型一致
select * from biao where name = 666 # 不一致
8、select的字段應該包含order by的字段
select name,age from 表 order by age 比較好
select name from 表 order by age 不好