分享

Mysql数据库的设计及语句优化

 太极混元天尊 2018-04-12


文章载入中...

前言


      对于初学者来说,养成代码规范的习惯尤为重要,同样在设计数据库表以及编写 SQL语句时,怎样优化SQL语句以及提高查询效率?这个值得每一位java初学者的注意。下面我就简单介绍一些常用的Mysql数据库的设计及语句优化规则。

数据库表设计规则

1、冗余设计;即设计数据库可以适当设计冗余字段。


2、设置删除状态字段;为了表面锁表,尽量用关键字update,少用delete。


3、字段上面尽量不要用null做默认值。


4、适当加入索引,过量索引会减慢插入数据的速度。


5、主键类型尽量采用tinyint;因为主键一般都是无符号的int,使用tinyint主键量可以达到int的两倍。

 

✎Mysql语句优化

1、使用select语句尽量多用字段,使用 * 效率更低。


2、  查询数量,尽量使用类似“count(1)”字样。


3、  查询一条语句,尽量在后面加上“limit1”(数据库查询到一条即停止)。


4、快速插入语句:                                                                                                                        例如:insertintouser(name) values(‘m’);                                                                    insert into user(name) values(‘n’);                                                          改为,insertintouser(name) values(‘m’), (‘n’);                  


SQL语句优化遵循原则

1、尽量避免在列上运算,这样会导致索引失效。


2、使用 JOIN 时,应该用小结果集驱动大结果集,同时把复杂的 JOIN 查询拆分成多个query,因为JOIN 多个表,可能导致更多的锁定和堵塞。


3、使用LIKE 时,避免使用 %%。


4、select 指定查询字段,不要全查出来,节省内存。


5、使用批量插入语句节省交互。


6、limit的基数比较大时,使用 between,between 限定比 limit 快,但是between也有缺陷,如果id中间有断行或是中间部分id不读取的情况,数据会少。

     例如:select * from t where 1 limit 100000,10 

     可改为:select * from twhere id between 100000 and100010


7、不要使用rand 函数取多条随机记录。


8、避免使用 NULL。


9、不要做无谓的排序操作,而应尽可能在索引中完成排序。                        

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多