MySQL SQL语句优化的10条建议

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

2、字段的种类尽可能用int或者tinyint类型。另外字段尽可能用not null

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

4、 字段的类型,以及长度,是一个很考究开发者优化功力的一个方面。如果表数据有一定的量了,不妨用PROCEDURE ANALYSE()命令来取得字段的优化建议!(在phpmyadmin里可以在查看表时,点击‘Propose table struture’来查看这些建议)如此可以让你的表字段结果趋向完善。

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

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

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

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

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

10、永远别用复杂的mysql语句来显示你的聪明,就我来说看到一次关联了三四个表的语句,只会让人觉得很不靠谱

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2016-06-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

服务器 数据库设计技巧--2

8.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如: select id from t wheresubstring...

3219
来自专栏程序员的SOD蜜

使用OQL+SQLMAP解决ORM多表复杂的查询问题

    一般情况下,使用ORM框架来完成单个实体的查询是很方便的,但如果有复杂的查询条件,普通的ORM组件比较困难,PDF.NET数据开发框架的ORM实体类查询...

2206
来自专栏软件开发

一个小时学会MySQL数据库

随着移动互联网的结束与人工智能的到来大数据变成越来越重要,下一个成功者应该是拥有海量数据的,数据与数据库你应该知道。

1763
来自专栏偏前端工程师的驿站

MyBatis魔法堂:Insert操作详解(返回主键、批量插入)

一、前言                                      数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT...

7508
来自专栏Kevin-ZhangCG

MySQL数据库实用技巧

培养兴趣   兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率。当然学习MySQL 5.6也不例外。 夯实基础   计算机领域的技术非常强调基础...

1381
来自专栏微服务生态

用尽洪荒之力整理的Mysql数据库32条军规

2、控制单表数据量 int型不超过1000w,含char则不超过500w; 合理分表; 限制单库表数量在300以内;

783
来自专栏安恒网络空间安全讲武堂

Sqli_labs65关通关详解(下)

less-31 逻辑跟30关一样,只不过 $id = '"' .$id. '"'; $sql="SELECT * FROM users WHERE id=($i...

3288
来自专栏个人随笔

初识MySQL

sc delete mysql 删除服务! 一:数据库介绍 引入: 我们之前使用的数据都是存储在内存中的!比如说我们写一个注册功能。 我们首先需要在内存中创建...

3607
来自专栏互联网开发者交流社区

数据库的总结

1374
来自专栏Java技术

告诉你38个MySQL数据库的小技巧!

培养兴趣 兴趣是最好的老师,不论学习什么知识,兴趣都可以极大地提高学习效率。当然学习MySQL 5.6也不例外。 夯实基础 计算机领域的技术非常强调基础,刚开始...

651

扫码关注云+社区