首页
学习
活动
专区
圈层
工具
发布

MySQL SQL和索引优化总结

专栏持续更新中:MySQL详解 首先我们需要知道MySQL主要是从以下3个方面进行优化: SQL语句和索引 应用优化(引入缓存、连接池) 配置参数优化 一、SQL语句和索引的优化 当数据量比较大,若SQL...,导致没用到索引 联合查询的大小表设置不合理,导致索引没用上(小表是整表查询,大表才用索引) 多表查询不用in(产生中间表),用外连接替代带in子查询的过程,合理使用索引 二、应用优化 除了优化SQL和索引...MySQL查询缓存 MySQL的查询缓存是把上一次select的查询结果记录下来放在缓存当中,下一次再查询相同内容的时候,直接从缓存中取出来就可以了,不用再进行一遍真正的SQL查询(在内存中划分一块空间用做缓存的地方...SQL请求就可以了,执行完成后,不销毁线程,而是把线程再归还到线程池中,等待下一次任务的处理(线程池的线程数量随着请求越来越多,是可以动态增加的) 配置完thread_cache_size,重启MySQL...并发连接数量和超时时间 MySQL Server作为一个服务器,可以设置客户端的最大连接量和连接超时时间,如果数据库连接统计数量比较大,这两个参数的值需要设置大一些 在配置文件(my.cnf或my.ini

62950
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql sql-mode 解析和设置

    sql_mode:简而言之就是:它定义了你MySQL应该支持的sql语法,对数据的校验等等 select @@sql_mode:使用该命令我们可以查看我们当前数据库的sql_mode mysql> select...不设置此值时,用默认的存储引擎替代,并抛出一个异常 三、据说是MySQL5.0以上版本支持三种sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。 ...1、ANSI模式:宽松模式,更改语法和行为,使其更符合标准SQL。对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。...将当前数据库模式设置为ANSI模式:  mysql> set @@sql_mode=ANSI;   2、TRADITIONAL模式:严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入...将当前数据库模式设置为STRICT_TRANS_TABLES模式: mysql> set @@sql_mode=STRICT_TRANS_TABLES;   没有最好与最坏的模式,只有最合适的模式。

    2.2K20

    MySQL系列专题(2)-MySQL的SQL语句和高级特性

    ');#结果为这是 MySql 数据库 #指定内容转换为小写 SELECT LOWER('MYSQL');#mysql #指定内容转换为大写 SELECT UPPER('mysql');#MYSQL #...| [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY...语句或者是用BEGIN和END包含的多条语句 所以可以说MySQL创建以下六种触发器: BEFORE INSERT,BEFORE DELETE,BEFORE UPDATE AFTER INSERT,AFTER...3.5.2 索引 作用: **快速定位特定数据,提高查询效率,确保数据的唯一性,快速定位特定数据;**可以加速表和表之间的连接,实现表与表之间的参照完整性,使用分组和排序语句进行数据检索时,可以显著减少分组和排序的时间全文检索字段进行搜索优化...的性能和增大了空间需求. 2.很少数据的列也不应该建立索引,比如 一个性别字段 0或者1,在查询中,结果集的数据占了表中数据行的比例比较大,mysql需要扫描的行数很多,增加索引,并不能提高效率 3.定义为

    4.8K10

    MySQL—SQL语言

    一、通用语法 SQL语句可以单行或多行书写,以分号结尾; SQL语句可以使用空格&缩进来增强语句的可读性; MySQL数据库的SQL语句不区分大小写,关键字建议使用大写; 注释: 单行注释...:–注释内容 或 #注释内容(MySQL特有) 多行注释:/*注释内容*/ 二、SQL语句分类 图片 1.DDL语句—数据库操作 查询 查询所有数据库SHOW DATABASES; 查询当前数据库...,(值1,值2,...); 注意: 插入数据时,指定字段顺序需要与值的顺序是一一对应的; 字符串和日期型数据应该包含在引号中; 插入的数据大小,应该在字段的规定范围内。...注意: 执行顺序:where > 聚合函数 > having 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无意义 3.1.5 排序查询 语法: SELETE 字段列表 FROM 表名...分页查询是数据库的“方言”,不同的数据库有不同的实现,MySQL中是LIMIT。 如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。

    3.1K40

    关于sql和MySQL的语句执行顺序(必看!!!)

    请认真看完此文章,对你的sql一定会有很大的提升! ql和mysql执行顺序,发现内部机制是一样的。最大区别是在别名的引用上。...on和where的最大区别在于,如果在on应用逻辑表达式那么在第三步outer join中还可以把移除的行再次添加回来,而where的移除的最终的。...二、mysql的执行顺序 SELECT语句定义 一个完成的SELECT语句包含可选的几个子句。...子句->HAVING子句->ORDER BY子句->SELECT子句->LIMIT子句->最终结果 每个子句执行后都会产生一个中间结果,供接下来的子句使用,如果不存在某个子句,就跳过 对比了一下,mysql...和sql执行顺序基本是一样的, 标准顺序的 SQL 语句为: select 考生姓名, max(总成绩) as max总成绩 from tb_Grade where 考生姓名 is not null

    5.1K40

    SQL -- MySQL 初识

    SQL SQL的概述: SQL全称: Structured Query Language,是结构化查询语言,用于访问和处理数据库的标准的计算机语言。...标准,扩展的标准版本是1989年发表的SQL-89,之后还有1992年制定的版本SQL-92和1999年ISO发布的版本SQL-99。...SQL标准几经修改和完善,其功能更加强大,但目前很多数据库系统只支持SQL-99的部分特征,而大部分数据库系统都能支持1992年制定的SQL-92。...MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,一般中小型网站的开发都选择 MySQL 作为网站数据库。...MySQL特点: MySQL数据库是用C和C++语言编写的,以保证源码的可移植性 支持多个操作系统例如:Windows、Linux、Mac OS等等 支持多线程,可以充分的利用CPU资源 为多种编程语言提供

    1.7K50

    Mysql SQL优化

    SQL优化规则 第一条: 尽量全值匹配,也就是说尽量使用等于 第二条: 最佳左前缀原则 如果是复合索引,要遵守最佳左前缀原则,指的是从最左侧列开始并且不跳过索引中的列 如果是按顺序使用的索引列,且有最左侧的列...类型转换),会导致索引失效而转向全表扫描 第四条: 范围条件放在最后 中间有范围查询会导致后面的索引列全部失效,但是本身是有效的 第五条: 尽量使用覆盖索引 尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致...)),减少select * 第六条: 尽量不使用不等于 mysql 在使用不等于(!...pos from staffs where name like '%july%' 第九条: 字符串类型加引号 字符串不加单引号索引失效 解决方式:请加引号【捂脸】 第十条: OR改 UNION效率高 这个SQL...作者:彼岸舞 时间:2020\07\11 内容关于:Mysql 本文来源于网络,只做技术分享,一概不负任何责任

    1.5K31
    领券