n Mybatis配置 全局配置文件SqlMapConfig.xml,配置了Mybatis的运行环境等信息. Mapper.xml文件即Sql映射文件,文件中配置了操作数据库的Sql语句.此文件需要在SqlMapConfig.xml中加载. n 通过Mybatis环境等配置信息构造SqlSessionFactory,即会话工厂. n 由会话工厂创建SqlSession即会话,操作数据库需要通过SqlSession进行. n Mybatis底层自定义了Executor执行器接口操作数据库,Exec…
一.什么是索引?索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的记录数量越多,这个操作的代价就越高.如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置.如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍. 假设我们创建了一个名为people的表: CREATE TABLE people ( pe…
测试结果总结如下: 1. 按主键读:SQL形式:SELECT * FROM table WHERE id=?. 1.1. 主键为数字.如果所有ID均不存在,纯比较SQL解析能力.MySQL解析SQL的速度约是Oracle的2倍.原因在于MySQL优化器代码简单,动态规划的深度限制为64层,能较好的控制解析SQL的时间. 1.2. 主键为数字.如果所有ID均存在,且完全随机分布.低并发(<=16)时MySQL的每秒处理查询数(QPS)落后Oracle 30%左右,并发量增大后(>=32),落后O…
Mysql 创建联合主键2008年01月11日 星期五 下午 5:21使用primary key (fieldlist)      比如:   create table mytable (      aa int, bb char(8), cc date, primary key (aa,bb ) ); aa,bb为联合主键 不知道是不是因为mysql(6.0)的版本问题,还是各版本都是这种情况,mysql中创建联合主键,联合主键列名之外不可以用单引号括上,否则出现错误,无法创建,报错是该列在表…
MySQL中的主键,外键有什么作用详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 学关系型数据库的同学,尤其在学习主键和外键时会产生一定的困惑.那么今天我们就把这个困惑连根拔起吧.本篇博客不要求你对数据库命令非常熟悉,因为我已经帮大家加了相应的注视.实验环境是关系型数据库 MySQL 8.0.14 . 一.主键 1>.什么是主键 数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性.主键主要是用于其他表的外键关联,以及本记录的修改…
前段时间遇到一个InnoDB表自增锁导致的问题,最近刚好有一个同行网友也问到自增锁的疑问,所以抽空系统的总结一下,这两个问题下篇会有阐述. 1. 划分三种插入类型 这里区分一下几种插入数据行的类型,便于后面描述:(纯逻辑上的划分) “Simple inserts”简单插入,就是在处理sql语句的时候,能够提前预估到插入的行数,包括 INSERT / REPLACE 的单行.多行插入,但不含嵌套子查询以及 INSERT ... ON DUPLICATE KEY UPDATE. “Bulk inse…
背景:最近线上经常抛出mysql的一个Deadlock,细细查来,长了知识! 分析:错误日志如下: 21:02:02.563 ERROR dao.CommonDao        [pool-15-thread-19] [jbc.trade.qunar.com] [703c9ddbe4b143609035365ca46bff35] - db error , tableId=jbc.trade.qunar.com, sql=update i_pay_record set checktime = n…
mysql update获取主键<pre>SET @update_id := 0;UPDATE mobantestinfo1 SET info2 = 'value', id = (SELECT @update_id := id)WHERE info1 = '23a' LIMIT 1; SELECT @update_id;</pre> 大致思路就是首先声明一个用户变量 @update_id ,之后在update数据时要多更新一个字段,就是将当前主键值更新为当前主键值(其实就是没更新)…
不带外键模式的 mysql 自增主键字段重排 1.备份表结构 create table table_bak like table_name; 2.备份表数据 insert into table_bak select * from table_name; 3.删除原来主键字段(如id) alter table table_name drop id; 4.添加主键,自增,放在第一位 alter table table_name add id int(11) primary key auto_incr…
mysql 的自增字段只能是主键,如果原表已经有主键,需要设置自增字段应该怎么做呢? 1.alter table bu_staff  drop primary key;  先删除表的主键  id为原表主键 2.alter table bu_staff  add primary key (face_id,id);  增加face_id为第一主键 3.alter table bu_staff  modify face_id int(11)  auto_increment;给face_id 增加aut…