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 条评论
登录 后参与评论

相关文章

来自专栏数据和云

MySQL的前缀索引及Oracle的类似实现

MySQL有一个很有意思的索引类型,叫做前缀索引,它可以给某个文本字段的前面部分单独做索引,从而降低索引的大小。 其实,Oracle也有类似的实现,对于文本,它...

3465
来自专栏杨建荣的学习笔记

通过ORA错误反思sql语句规范(r4笔记第41天)

今天快下班的时候,有个开发的同事问我一个问题,说他在客户端执行一条sql语句,里面包含子查询,如果单独执行子查询,会报"invalid identifier"...

2263
来自专栏JMCui

再学习之MyBatis.

一、框架基本介绍 1、概念 支持普通SQL查询、存储过程和高级映射,简化和实现了Java 数据持久化层的的开源框架,主要流行的原因在于他的简单性和易使用性。 2...

3988
来自专栏杨建荣的学习笔记

MySQL数据类型(r3笔记第87天)

今天在本地装了一个MySQL的学习环境,简单的熟悉了一下。准备开始好好学习MySQL了。 学习编程语言我都是从数据类型入手。每种编程语言的数据类型都有自己的特点...

28110
来自专栏用户画像

MySQL数据库中的5种数据类型简介

MySQL数据库中的5种数据类型是:字符型,文本型,数值型,逻辑型与日期型,以下就是文章的详细内容介绍,希望在你今后的学习中会有所帮助。

652
来自专栏DOTNET

Entity Framework——建模建库

1数据库初始化策略选择 三种初始化策略: 1)CreateDatabaseIfNotExists:默认的策略。如果数据库不存在,那么就创建数据库。但是如果数据库...

2877
来自专栏Android学习之路

Android Room 持久化库

2517
来自专栏chenssy

【死磕Sharding-jdbc】---路由&执行

继续以 sharding-jdbc-example-jdbc模块中的 com.dangdang.ddframe.rdb.sharding.example.jdb...

793
来自专栏difcareer的技术笔记

彻底弄懂dalvik字节码【一】

之前曾经简单跟踪过代码,知道dalvik的字节码是可以支持解释执行的,所谓的解释执行,其实就是c/c++编写的用于解释并执行dalvik字节码的程序,说白了就是...

942
来自专栏java小白

explain 分析sql语句字段的解释

2095

扫码关注云+社区