数据库
文章平均质量分 86
Alphr
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
order by是否会产生文件类排序
建表SQL:案例case1:case2:通过这两个案例,我们发现只要order by满足最佳左前缀法则,就可以使用到索引总结:原创 2020-06-26 19:53:11 · 310 阅读 · 0 评论 -
索引优化,如何避免索引失效
索引失效的前提是建立索引,并且在一定情况下索引失效不起作用了,下面列出的就是避免索引失效的十种情况这里说一下全值匹配和最佳左前缀法则:全值匹配的意思是查找的字段顺序和个数与索引的列的个数和顺序一致我们发现只要索引中第一列没有或者缺少某个复合索引中的索引列都会导致索引失效,这是因为违反了最佳左前缀法则导致的,所以我们在写SQL时最好讲where后的查询列的个数顺序与复合索引的个数顺序一致链接:最佳左前缀法则有的小伙伴在测试的时候会出现明明违反了最佳左前缀法则仍然能够用上索引,建议看一看这篇文章原创 2020-06-26 15:25:26 · 670 阅读 · 0 评论 -
MySQL索引优化案例
文章目录1.range导致索引失效2.两表优化3.三表优化1.range导致索引失效针对这样的sql语句,它属于article表,并且事先准备了索引:cteate index idx_article_ccv on article(category_id,comments,views);我们执行上面的explain会出现以下结果:原因:解决:重新建立索引,先删除原来的索引drop index idx_article_ccv on article,然后建立新的索引:cteate index原创 2020-06-26 10:42:48 · 284 阅读 · 0 评论 -
Mysql-Explain用法详解
文章目录1.Explain能干嘛2.Explain包含的表头信息3.Explain-id(表的读取顺序)3.1 id相同3.2 id不同3.3 id相同又不同4. Explain-Select_type(数据读取操作的操作类型)5. Table6. Type7. possible_keys和key使用方式:Explain + SQL语句1.Explain能干嘛2.Explain包含的表头信息3.Explain-id(表的读取顺序)这里的id不是主键,它是一组数字12345这种,表示我们进行表原创 2020-06-25 14:47:22 · 646 阅读 · 0 评论 -
Mysql-索引
文章目录1.什么是索引?为什么要建立索引?2.哪些情况需要建立索引3.哪些情况不需要建立索引4.索引有哪几种类型5.建立索引命令6.索引结构和检索原理7.索引使用场景1.什么是索引?为什么要建立索引?简介:数据库系统除了维护一张表的数据,还维护着一个满足特定查找算法的数据结构,这种数据结构就是索引,索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MySQL能够快速到达一个位置原创 2020-06-25 11:50:22 · 306 阅读 · 0 评论 -
DDL,DML,DQL联系与区别
DDL操作是隐性提交的!不能rollback原创 2020-03-28 11:48:48 · 1191 阅读 · 0 评论 -
几种常用的数据源JNDI,C3P0,DBCP的使用与理解
先来看原生jdbc怎样连接数据库加载JDBC 驱动:1.Class.forName(driver);// mysql 数据库:“com.mysql.jdbc.Driver”建立数据库连接:2.Connection conn=DriverManager.getConnection(url,userName,password);创建 statement,用来执行SQL 语句:3...原创 2020-04-11 15:19:21 · 839 阅读 · 0 评论 -
MySQL中最左原则和覆盖索引的讨论
最左原则create table Demo(id int primary key auto_increment, phoneNum int, email int, jobId int, addId int, unique id(phoneNum)); 我么先创建了Demo表,然后紧接着创建了索引Demo_e_j_add,首先匹配email,然后再匹配剩下的列数,要是没有了emai...原创 2020-03-13 18:17:40 · 919 阅读 · 0 评论 -
一文搞懂xshell远程链接阿里云服务器
在阿里云中找到实例打开xshell,新建会话选择用户身份验证选择Public Key填写用户名(随便取),然后点击浏览,然后生成生成一直点击下一步,直到继续点击下一步点击保存为文件,保存在桌面上或者其他文件夹中回到阿里云服务器进入阿里云-- >控制台 – > 网络与安全 -->密钥对把刚才保存的文件复制输入点击确定绑定密钥重启阿里云服...原创 2020-03-12 09:49:30 · 533 阅读 · 0 评论 -
一篇文章搞懂MySQL各种联结JOIN
七种join模型其中左外连接,右外连接,全外连接各有两种模型创建表我们创建两张表,部门表department和员工表employee,主键都为id内连接根据内连接特点,我们可以得出7条正确结果:根据部门表的id,一行一行的和员工表的部门id匹配,有结果就显示左外连接(第一种情况)我们可以看到,左外连接的特点是LEFT OUT左边的表的departmentId和右边的表的id一...原创 2020-03-10 18:32:05 · 530 阅读 · 0 评论 -
SQL语句执行顺序
手写顺序:我们一般按照这个大概的顺序,选择左外,右外,全外链接编写sql语句,但是mysql的执行顺序和我们手写的不一样mysql引擎执行顺序:首先执行的是FROM,保留了ON关键字,其次是JOIN,如果有JOIN,那么这个ON就表示两张表的连接条件,此时的ON和WHERE依次执行,随后是GROUP BY,HAVING,SELECT,DINSTINCT,ORDER BY,LIMIT...原创 2020-03-10 12:40:37 · 378 阅读 · 0 评论 -
mysql常用引擎介绍
原创 2020-03-10 12:31:47 · 375 阅读 · 0 评论 -
mybatis源码解析-如何执行查询操作
//1.通过输入流解析xml配置文件InputStream inputstream = Resources.getResourceAsStream("xxx.xml")SqlsessionFactory sqlsessionfactory = new SqlsessionFactoryBuilder().build(inputstream);//2.获取和数据库的链接,创建会话SqlSession openSession = sqlsessionfactory.openSession();//3.原创 2020-06-07 19:41:11 · 384 阅读 · 0 评论 -
mybatis源码解析-getMapper
之前两篇文章:mybatis源码解析-SqlsessionFactorymybatis源码解析-获取Sqlsession介绍了在mybatis运行中的前两步的执行过程和原理,继续摆出我们的demo://1.通过输入流解析xml配置文件InputStream inputstream = Resources.getResourceAsStream("xxx.xml")SqlsessionFactory sqlsessionfactory = new SqlsessionFactoryBuilder(原创 2020-06-07 16:45:00 · 324 阅读 · 0 评论 -
mybatis源码解析-获取Sqlsession
上篇文章讲了mybatis是怎么创建SqlSessionFactory的:mybatis源码解析-SqlsessionFactory,简单来说就是通过构造模式读取xml配置文件封装到Configuration对象中,返回一个默认的DefaultSqlSessionFactory对象,需要注意的是我们写的每一个mapper映射文件在配置类中定义好了之后会被解析进Configuration中,并且mapper映射文件中的增删改查标签都有与之对应的MappedStatement对象封装,我们还是摆出hello w原创 2020-06-07 16:12:00 · 308 阅读 · 0 评论 -
mybatis源码解析-SqlsessionFactory
我们通过hello world来调试mybatis源码,先写一段伪代码://1.通过输入流解析xml配置文件InputStream inputstream = Resources.getResourceAsStream("xxx.xml")SqlsessionFactory sqlsessionfactory = new SqlsessionFactoryBuilder().build(inputstream);//2.获取和数据库的链接,创建会话SqlSession openSession =原创 2020-06-07 10:20:35 · 338 阅读 · 0 评论 -
mybatis参数处理过程及原理
无法获取参数在mybatis的映射文件***Mapper.xml中,如果没有规定传入参数类型,就会发生一些错误给出一个映射文件<select id="getPerson" resultType="com.rwh.pojo.person"> select * from person where id = #{id} and name = #{name}</s...原创 2020-04-20 13:08:11 · 987 阅读 · 0 评论
分享