![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Mysql
文章平均质量分 85
Mysql
想要胖胖的豪
Life may have thrown me a curve ball,but we wil face the future...together
展开
-
Mysql高级
性能分析explain使用explain select * from a where id=1;列含义(1)id列id列的编号是select的序列号,有几个select就有几个id,并且id的顺序是按select出现的顺序增长的。id列值越大执行优先级越高,id相同则从上往下执行,id为NULL最后执行。(2) select_type列select_type表示对应行是简单还是复杂的查询1) simple: 简单查询。查询不包含子查询和union2) primary: 复杂查询中最外层原创 2021-05-10 16:51:14 · 740 阅读 · 0 评论 -
MySql查询缓存学习总结
本文是对高性能的Mysql查询缓存的学习总结。包含查询缓存的一些基础知识、概念理解和参数介绍和设置。原创 2021-04-10 11:35:38 · 460 阅读 · 0 评论 -
Innodb删除和更新带上索引(索引和锁)
为什么说InnoDB在删除和更新语句时要带上索引?本文将详细讲解带索引的好处原创 2021-03-25 21:25:23 · 346 阅读 · 0 评论 -
order by、group by优化和索引覆盖总结
索引覆盖:索引覆盖指的是查询的列全部在使用到的索引树上。查询的时候,如果可以索引覆盖就尽可能的使用order by和group by优化需要尽可能的不要出现filesort而去使用使用到索引排序。filesort需要获取排序的操作内存,优化器会预先分配固定数量的sort_buffer_size字节,如果没有超过max_length_for_sort_data,则会在sort_buffer中排序,超过后则会从临时文件中排序,这样效率更低。所以尽量使用索引排序。(1)order by的字段不在索引上原创 2020-12-03 20:06:18 · 1014 阅读 · 0 评论 -
索引条件下推优化(ICP)
概念索引条件下推是对使用索引从表中检索行的一种优化。如果不使用icp,存储引擎先遍历索引然后去基表中去定位所需要的行,并将其返回给Mysql服务器,然后服务器进行where条件的过滤。使用到icp后,如果where的部分列可以仅使用索引中的列来过滤,则mysql服务器会将这部分条件下推到存储引擎,存储引擎使用索引条目来计算已推入的索引条件,只有满足这个条件,才从表中读取行。从而减少存储引擎访问表的次数和mysql服务器访问存储引擎的次数需要满足的条件1、当range、ref、eq_ref和ref原创 2020-12-02 20:18:39 · 860 阅读 · 0 评论 -
联合索引和最左前缀原则
联合索引:(1)也称多列索引、复合索引。(2)联合索引就是把多个列按照顺序放到一个索引树上。(3)一个索引上最多可以建16列。(4)联合索引可以看成排好序的数组。 排序规则是:先按照第一个列进行排序,第二列再按照第一列排好序的基础上再进行排序,依次类推(5)需要按照最左前缀原则才能生效 最左前缀原则:按照最左边的列开始的顺序并且不能跳过其中的列。 如:(name, age,posi...原创 2020-12-01 19:36:34 · 377 阅读 · 0 评论 -
索引合并优化
概念索引合并指的多个索引进行范围检索的合并它们的结果成为一个,成立条件必须是在同一个表中,不支持多表索引合并。结果合并时产生交集或并集。准备以下同个下面的表进行举例说明:索引索引合并产生交集select * from employees where name="花花" and position='manage';该sql可能会进行索引合并,并结果取交集可以通过explain查看一下执行计划可以看到type是index_merge和extra出现了Using i原创 2020-11-29 10:30:33 · 293 阅读 · 0 评论 -
索引的概念和理解
索引是什么索引是帮助mysql高速查询数据的排好序的数据结构。一般使用的是一种特殊的B+树,还可以使用HasH树索引能干什么和为什么要使用索引用于快速查找具有特定列值的行。如果没有索引,mysql必须从第一行开始扫描查找,然后全表扫描来查找到所有需要的值。表越大,需要花费越大,磁盘io越多,速度越慢。如果通过索引查找可以快速定位到需要查找的数据,而不需全部扫描。索引结构MyISAMMyISAM的存储结构分为 .frm用于存储表结构、.MYD用于存储数据、.MYI用于存储索引myis原创 2020-11-26 10:56:15 · 1641 阅读 · 0 评论 -
count(*)优化
序言一谈到mysql优化,肯定有很多人会提到count(*)优化,百度到的面试题和各种博客,一查一大堆。count(*),真的需要优化吗,如果需要优化那该怎么优化,本文将会从mysql5.6.46,、5.7.16、5.7.26三个版本分别讨论。讨论的前提是innodb搜素引擎。对比5.7.26运行环境联想拯救者Y7000表结构数据量1006950只有主键索引时EXPLAIN select count(*) from employees;---->0.58..原创 2020-11-21 16:18:04 · 1407 阅读 · 0 评论 -
SpringBoot事务机制学习
1、同一事务下,删除更新新增操作后,查到的数据是否是操作的最新数据 答:是的,这个是于mysql事务的隔离性有关,由于事务的隔离性,本事的操作都是最新的数据,其他事务操作的都是本事务提交前的数据(mysql默认是可重复读,不会出现脏读、幻读、可重复读)###查询mysql的事务隔离级别select @@tx_isolation;######一个事务中(假设表A)###########开启事务start transaction;###查询当前数据select * from A;...原创 2020-08-17 16:49:21 · 588 阅读 · 2 评论 -
关于mysql5.7.26windows安装问题
(1)如果电脑上已有编码正常的mysql的话,直接下载一个安装程序进行升级即可。 如果使用压缩版的,压缩版中没有my.ini文件,同样也可以启动,但是character_set_server默认的字符集使lian1,插入数据时会中文乱码,浪费了一上午的时间去网上找解决办法,都是说改my.ini文件,加上这个文件并不起作用,因为并不需要它。所以建议直接用安装程序升级吧,简单方便,又不会丢失之前的数据...原创 2019-05-06 13:15:30 · 1152 阅读 · 0 评论 -
Navicat导入Excel数据
今天在做项目时,需要将excel的数据导入的mysql表中。本来想自己写一个将读取Excel数据并输出成sql语句的工具类,在查阅资料时发现Navicat将然就可以实现,所以就偷个懒使用这个便捷的工具。当然在导入过程中遇到了一些问题,特此在这做个记录。 本次实例为民族代码数据。详细步骤如下: (1)首先在数据库中建立相应的表。注意:我设置id是自增的。(2)在excel文件的...原创 2018-10-17 13:55:14 · 31044 阅读 · 0 评论