![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql数据库
文章平均质量分 52
gaoshan12345678910
这个作者很懒,什么都没留下…
展开
-
mysql 多表关联查询性能优化-同一sql不同的执行计划
mysql 多表关联查询性能优化-同一sql不同的执行计划原创 2024-05-16 15:23:48 · 330 阅读 · 1 评论 -
【性能提升神器】STRAIGHT_JOIN,指定驱动表
【性能提升神器】STRAIGHT_JOIN,指定驱动表原创 2024-05-16 15:06:06 · 298 阅读 · 0 评论 -
mysql 多表关联执行计划 mysql 多表关联优化
2)上面说过JOIN关联,非驱动表关联字段要加索引,驱动表不一定加,由上面分析可以知道,驱动表是不固定的,会根据不同索引的生效而改变,所以有可能一个表刚开始是有索引的,后面变成了非驱动表,变成了全表查询,所以我 们要根据不同的查询条件,先确定驱动表,更好的优化SQL。结论: MYSQL会自动取根据WHERE条件得到最小结果集的表作为驱动表,再去ON非驱动表,所以驱动表先执行WHERE再执行ON,非驱动表先执行,ON在执行WHERE,前提条件下是两个表的字段都要命中索引。原创 2024-05-16 14:28:30 · 706 阅读 · 0 评论 -
mysql多表查询,强制使用特定索引
mysql多表查询,强制使用特定索引原创 2024-05-16 11:10:15 · 366 阅读 · 0 评论 -
MySQL not in查询不出数据(MySQL not in 无效)
MySQL not in查询不出数据(MySQL not in 无效)转载 2022-06-23 14:19:21 · 10912 阅读 · 0 评论 -
mysql 1071错误,原因是Mysql的字段设置的太长了
mysql 1071错误经过查询才知道,是Mysql的字段设置的太长了,于是我把这两个字段的长度改了一下就好了。建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度后再按下面比例乘起来不能超过限定的key长度1000:latin1 = 1 byte = 1 characteruft8 = 3 byte = 1 charactergbk = 2 byte = 1 character举例能看得更明白些,以GBK为例:CREATE UNIQUE INDEX `...转载 2021-11-17 15:48:37 · 1961 阅读 · 0 评论 -
创建唯一联合索引报 Duplicate entry for key
问题解释:Duplicate entry ‘…’ for key 'PRIMARY,即插入数据时,要插入数据的主键数据(…)已经存在,不能再重复添加了。例:Duplicate entry ‘0’ for key 'PRIMARY是指主键为0的数据已经存在,不能再插入主键值为0的数据了。问题解决:在执行插入操作insert前,可以先执行一遍该主键值的查找操作select,例如:执行插入一条(0,“张三”)操作insert into table(id,name) values(0,'张三')转载 2021-11-17 15:46:41 · 874 阅读 · 0 评论 -
MySQL索引操作
索引创建完成后,可以利用 SQL 语句查看已经存在的索引。在MySQL中,可以使用 SHOW INDEX 语句查看表中创建的索引。查看索引的语法格式如下:SHOW INDEX FROM <表名> [ FROM <数据库名>]语法说明如下:<表名>:指定需要查看索引的数据表名。 <数据库名>:指定需要查看索引的数据表所在的数据库,可省略。比如,SHOW INDEX FROM student FROM test; 语句表示查看 test 数据库..转载 2021-11-17 15:45:28 · 81 阅读 · 0 评论 -
MySQL-MySQL int(M)中M的理解
1.概述:在数据库优化中,定义数据字段的类型对数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。本文讲的主要是MySQL数值类型。MySQL支持所有标准SQL数值数据类型。作为SQL标准的扩展,MySQL也支持整数类型TINYINT、SMALLINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。2.tinyInt(M)中m的数值意义创建测试数据表:CREATE TABLE `whfs_test`转载 2021-07-15 18:00:54 · 162 阅读 · 0 评论 -
mysql update语句 in执行效率优化
1、常用的mysql执行更新操作语句如下:UPDATE table1 set num = num + 1 where id in (SELECT id FROM table2 WHERE date>'2017-05-09)in条件的更新效率可优化使用join语法;2、join预发更新操作UPDATE table1 t1 INNER JOIN table2 t2 on t1.id = t2.id set t1.num = t1.num + 1 where t2.date>'201转载 2021-07-15 17:41:14 · 5927 阅读 · 0 评论 -
联合索引最左匹配原则
什么时候创建组合索引?当我们的where查询存在多个条件查询的时候,我们需要对查询的列创建组合索引为什么不对每一列创建索引减少开销 覆盖索引 效率高减少开销:假如对col1、col2、col3创建组合索引,相当于创建了(col1)、(col1,col2)、(col1,col2,col3)3个索引覆盖索引:假如查询SELECT col1, col2, col3 FROM 表名,由于查询的字段存在索引页中,那么可以从索引中直接获取,而不需要回表查询效率高:对col1、col2、col3转载 2020-11-30 20:17:17 · 1060 阅读 · 0 评论 -
mysql5.7系列修改root默认密码
转自https://www.cnblogs.com/activiti/p/7810166.html操作系统为centos7 641、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1这一行配置让 mysqld 启动时不对密码进行验证2、重启 mysqld 服务:systemctl restart mysqld3、使用 ro...转载 2019-01-16 16:14:54 · 303 阅读 · 0 评论 -
MySql 5.7.20版本免安装版配置过程
转自https://www.cnblogs.com/wxw7blog/p/7853182.html下载地址为:https://dev.mysql.com/downloads/mysql/最下面根据自己的操作系统选择合适的型号下载完以后解压缩到自定义的路径。这里注意的是路径中不要存在中文。解压缩后以后新建一个ini形式的文件,名字为my,里面内容为[mysql]...转载 2019-01-16 16:05:38 · 135 阅读 · 0 评论 -
mysql分表和表分区详解
转自https://www.2cto.com/database/201503/380348.html为什么要分表和分区?日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表转载 2017-12-14 15:18:12 · 183 阅读 · 0 评论 -
数据库SQL开发规范
来自视频总结1、mysql中,VARCHAR(N)中的N代表的是字符数,而不是字节数。例如VARCHAR(255)表示可以保存255的中文2、过大的长度会消耗更多的内存。VARCHAR(N),存储时是按照数据实际长度存储的。当把数据读入到内存时,为了提高效率,是按照N的长度分配内存的。3、尽可能将所有列定义为NOT NULL。a、索引NULL列,需要额外的空间来保存,所以要转载 2017-12-13 17:59:06 · 292 阅读 · 0 评论 -
MYSQL explain详解
转自http://blog.csdn.net/zhuxineli/article/details/14455029explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。先解析一条sql语句,看出现什么内容EXPLAIN SELECT s.uid,s.username,s.name,f.email,f.m转载 2017-12-14 16:41:15 · 140 阅读 · 0 评论 -
MySQL高可用架构之MHA
MySQL高可用架构之MHAhttp://www.cnblogs.com/gomysql/p/3675429.html简介:MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升转载 2017-12-15 17:08:36 · 337 阅读 · 0 评论 -
分析诊断工具之一:MYSQL性能查看(多指标)
转自http://www.cnblogs.com/duanxz/p/3507006.html分析诊断工具之一:MYSQL性能查看(多指标)网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一段时间后运行,根据服务器的”状态”进行优化。转载 2017-12-19 10:30:03 · 4551 阅读 · 0 评论 -
分析诊断工具之二:Explain结果解读与实践
转自http://www.cnblogs.com/duanxz/p/4470607.htmlexplain之二:Explain 结果解读与实践,分析诊断工具之二 MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP)。这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的。这条命令并没有提供任何调整建议,但它能够提供重要的信息帮助你做出调优决策。转载 2017-12-19 10:40:50 · 937 阅读 · 0 评论 -
分析诊断工具之三:使用show profiles分析SQL性能
转自http://www.cnblogs.com/duanxz/archive/2013/01/23/2872537.html分析诊断工具之三:使用show profiles分析SQL性能 分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数可以在全局和session级别来设置。对于全局级别则作用于整个M转载 2017-12-19 10:48:40 · 14433 阅读 · 1 评论 -
列选择原则
1:字段类型优先级整型 > date,time > enum,char>varchar> blob列的特点分析:整型: 定长,没有国家/地区之分,没有字符集的差异time定长,运算快,节省空间. 考虑时区,写sql时不方便 where > ‘2005-10-12’;enum: 能起来约束值的目的, 内部用整型来存储,但与char联查时,内部要经历串与值的转化Char 定长, 考转载 2017-12-19 11:06:58 · 216 阅读 · 0 评论 -
索引优化策略
1:索引类型 1.1B-tree索引 注: 名叫btree索引,大的方面看,都用的平衡树,但具体的实现上, 各引擎稍有不同,比如,严格的说,NDB引擎,使用的是T-tree Myisam,innodb中,默认用B-tree索引 但抽象一下---B-tree系统,可理解为”排好序的快速查找结构”. 1.2 hash索引 在memory表里,默认是h转载 2017-12-19 11:12:21 · 331 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
转自http://blog.codinglabs.org/articles/theory-of-mysql-index.html 作者 张洋 | 发布于 2011-10-18 MySQL索引 B树 优化 摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引转载 2017-08-30 17:59:05 · 228 阅读 · 0 评论 -
MySQL的MyISAM与InnoDB的索引方式
转自https://www.cnblogs.com/renzherushe/p/4780226.html在MySQL中,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,本文主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。MyISAM索引实现MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyI转载 2017-12-19 17:49:03 · 337 阅读 · 0 评论