mysql的简单优化【简单易学】

1、选取最适用的字段属性;

  表字段尽量设小,不要给数据库增加没必要的空间;如:值为‘01‘、‘02‘,给char(2)即可;

2、使用连接(JOIN)来代替子查询(Sub-Queries);

  使用join是因为MySQL不需要在内存中创建临时表来完成这个逻辑上的需要两个步骤的查询工作。

3、建立索引;

  一般用在JOIN,WHERE判断,ORDERBY排序字段上。

4、避免使用select * from 表名;

  需要什么字段就写什么字段。

5、尽量避免在WHERE中!=或者<>,否则放弃使用索引而进行全表扫描;

6、尽量避免在WHERE中对字段进行NULL值判断、使用or作为连接条件,否则将导致 引擎放弃使用索引而进行全表扫描;

7、下面的查询也将导致全表扫描:(不能前后置百分号);

  select id from where name like ‘%张%‘

8、in 和 not in 也要慎用,对于数值,能用between就不要用in了;

9、避免在WHERE中对字段进行表达式运算,也会导致全表扫描;

  错误:select id from user where age/2=10

  正确:select id from user where age=10*2

10、尽量设置数字型字段,因为引擎在处理查询和连接时,字符型会逐个比较,数字 型只会比较一次;

好了,mysql的简单优化就讲到这里,喜欢的点点关注~

原文地址:https://www.cnblogs.com/hxinbk/p/9599384.html

时间: 2024-11-06 10:01:37

mysql的简单优化【简单易学】的相关文章

mysql中的优化, 简单的说了一下垂直分表, 水平分表(有几种模运算),读写分离.

一.mysql中的优化 where语句的优化 1.尽量避免在 where 子句中对字段进行表达式操作select id from uinfo_jifen where jifen/60 > 10000;优化后:Select id from uinfo_jifen where jifen>600000; 2.应尽量避免在where子句中对字段进行函数操作,这将导致mysql放弃使用索引 select uid from imid where datediff(create_time,'2011-11

完整构建LNMP,简单优化实现超高并发访问!

LNMP简介 1.什么是LNMP? 也许大家对LAMP比较熟悉,LAMP代表Linux下Apache.MySQL.PHP这种网站服务器架构:同上LNMP代表的就是Linux下Nginx.MySQL.PHP这种网站服务器架构. 2.我们为什么要采用LNMP这种架构呢? 使用Linux.PHP外加MySQL的优点我就无需多说相信大家也都很明了. Nginx是一个轻量级且高效的Linux下的Web服务器软件,最初是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的反向代

Mysql数据库实现的简单置顶

Mysql数据库实现的简单置顶 1. 问题背景:小编要做一个文章管理的简单网页,用的是Mysql数据库.其中需要文章置顶功能,如图: 2. 最初的思路:机智的小编立刻大脑飞速运转,很快想到为存储文章的"article"表设定一个(int)型的"isTop"属性,0表示不置顶,大于0表示置顶且数字越大,优先级越高.显示的时候只需按照"isTop"降序显示.当用户需要将"id"为"001"的文章置顶时,后台只需

ECMall的MySQL数据调用的简单方法

很多ecmall开发者会问,怎么使用Ecmall的mysql类库进行数据调用.从原理上来讲Ecmall的数据调用是以数据模块+模块类库的方式进行mysql数据调用的,所有数据模块都存储在includesmodels 目录下,这些调用对于初学者来讲是比较复杂的,例如商品的数据调用函数,不能用在店铺的数据调用上,每个数据表都有自己的函数自己的类库和少量的公共类库.因此初学者来讲,调用mysql数据很困难. 现在讲解一个简单的调用方法能满足95%以上的mysql数据调用请求.足够对ecmall进行二次

linux小白-基础篇-系统简单优化

作为一个刚刚接触Linux的小白,通过一段时间的学习,将我自己的部分笔记整理后拿出来,请求大家指点:因为是"0"基础学起很多地方了解的都不够深入,希望各位前辈能够指点一下:予人玫瑰,手留余香,谢谢! 因为条件有限环境是用VM搭建起来的,下文主要是根据"老男孩教育视频"中的内容整理出来的系统简单优化,希望各位前辈看过以后可以给出建议: 已学习进步为目的,不喜勿喷!谢谢! 系统简单优化    命令 一.关闭selinux                         

编译安装nginx及简单优化配置

一.背景 使用源码包安装lnmp架构及简单的优化配置 二.实验环境 rhel6.5 三.安装过程 1.nginx(提前装好gcc等编译器) (1) 下载源码包  http://nginx.org/ (2) tar -zxf nginx-1.8.1.tar.gz (3) cd nginx-1.8.1 vim auto/cc/gcc 修改第179行 (将本行注释,意为取消debug模式,) (4) ./configure --prefix=/usr/local/lnmp/nginx \ --with

mysql数据库基础的简单操作指南

最近在学习mysql,本文是做的关于mysql学习的笔记,跟大家分享一下,希望对大家学习mysql知识有所助益.mysql现在几乎已经成了网站建设的主流数据库,很多php网站系统都采用了mysql数据库.比mssql最大的优势在于开源,免费.希望与大家共同进步. mysql数据库基础的简单操作指南:首先进入mysql:mysql -u root -p 1.建库: create database 库名称; 例如:create database mydata;(创建一个名为“mydata”的库):

利用PHP实现MySQL表数据的简单分页

PHP实现MySQL表数据的简单分页 <?php  $conn=mysql_connect("127.0.0.1","root",'123456') or die("数据库连接失败"); mysql_select_db("ym"); mysql_query("set names utf8"); //获取数据的行数 $all=mysql_num_rows(mysql_query("select

MYSQL(一) 简单语法

MYSQL(一) 简单语法 1.默认约束:mysql里面DEFAULT关键字后面是不用加括号的 --1.1 创建数据库 mysql> create database holly; Query OK, 1 row affected (0.00 sec) --1.2 使用数据库 mysql> use holly; Database changed --1.3 创建数据库表 mysql> create table student -> ( ->    id int default