您的位置:首页 > 数据库 > MySQL

数据库----(Mysql语句性能调优)

2016-09-05 23:14 411 查看
开发时候可能因为项目周期或者自身能力不够只是为了实现功能,但是开发完毕对于性能调优,代码优化要求就高了,那么针对于mysql的优化建议整理如下:

1.将经常要用到的字段(比如经常要用这些字段来排序,或者用来做搜索),则最好将这些字段设为索引。

2.字段的种类尽可能用int 或者tinyint类型。另外字段尽可能用NOT NULL。

3.当然无可避免某些字段会用到text ,varchar等字符类型,最好将text字段的单独出另外一个表出来(用主键关联好)

4. 字段的类型,以及长度,是一个很考究开发者优化功力的一个方面。

5.select * 尽量少用,你想要什么字段 就select 什么字段出来 不要老是用* 号!同理,只要一行数据时尽量使用 LIMIT 1

6.绝对不要轻易用order by rand() ,很可能会导致mysql的灾难!!

7.每个表都应该设置一个ID主键,最好的是一个INT型,并且设置上自动增加的AUTO_INCREMENT标志,这点其实应该作为设计表结构的第一件必然要做的事!!

8.拆分大的 DELETE 或 INSERT 语句。因为这两个操作是会锁表的,表一锁住了,别的操作都进不来了,就我来说 有时候我宁愿用for循环来一个个执行这些操作。

9.不要用永久链接 mysql_pconnect();除非你真的非常肯定你的程序不会发生意外,不然很可能也会导致你的mysql死掉。

10.永远别要用复杂的mysql语句来显示你的聪明。因为复用性太差,如果稍微一更改,则将成为废弃代码。

11、尽量少用like 因为会对全表扫描,所以除非必要时候

12、统一sql语法,要是大写都大写,小写都小写,对于select*from dual 、select*From dual这两条sql语句,看似相同,但是sql执行会有差异,后者会执行解析两次

13、使用临时表来暂存临时数据,来减少对于主表的多次扫描

14、能用变量的话,最好是使用变量,通过外界传如参数不同,但是解析一次

15、避免在索引上进行运算,容易导致索引失效。

16、1)设计日期时候,建议用int取代char(8)。例如整型:20150603。 2)设计IP时候可以用bigint把IP转化为长整型存储。

17、join时,使用小结果集驱动大结果集

18、使用批量插入节省交互

19.多习惯使用explain分析sql语句

加群:300458205

参考资料:

http://www.cnblogs.com/hongfei/archive/2012/10/20/2732516.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: