![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
明成天下
做个技术达人
展开
-
mysql 创建视图与创建临时表循环遍历
创建视图create view ua as(select q.id,q.name from t_user_info as qwhere q.age >22)#查询视图数据select ua.id from ua;#删除视图drop view ua;当根据ua.id删除t_user_info 对应的记录后,ua的记录也为空delimiter $$DROP PROCEDURE IF EXISTS test_delete;create PROCEDURE test_delete ()原创 2021-07-12 19:19:10 · 772 阅读 · 0 评论 -
mysql 循环遍历结果集,来逐条更新
SELECT USER_ID FROM ua; 会返回USER_ID的列表2.通过循环来逐条更新符合USER_ID的记录# delimiter $$ 告诉解释器使用$$结尾delimiter $$DROP PROCEDURE IF EXISTS test_update;create PROCEDURE test_update ()begin# 声明自定义变量DECLARE tempUserId BIGINT(20);# 声明游标结束变量DECLARE done INT DEFAUL.原创 2021-07-12 17:38:30 · 2314 阅读 · 0 评论 -
BinLog
1.Binlogbinlog 以事件的形式记录了所有的DDL 和DML 语句(因为它记录的是操作而不是数据值,属于逻辑日志),可以用来做主从复制和数据恢复。实现数据的恢复:在开启了binlog 功能的情况下,把binlog 导出成SQL 语句,把所有的操作重放一遍.实现主从复制:从服务器读取主服务器的binlog,然后执行一遍。1、先查询到这条数据,如果有缓存,也会用到缓存。2、...原创 2020-12-22 17:53:02 · 91 阅读 · 1 评论 -
Mysql 聚集索引和非聚集索引区别
1)聚集索引和非聚集索引区别------------聚簇索引和非聚簇索引区别1.在InnoDb中主键索引即为聚集索引,数据存储在B+树的叶子节点,索引和数据放在一起2.非聚集索引:指的是非主键索引,非主键索引叶子节点数据存储的是主键索引的ID,真实数据没有和索引放一起2)为什么非主键索引存储的是主键索引非真实数据为了数据的一致性,对一个索引数据进行修改将会导致其他索引也修改,需要改很多地方,开销大。占用磁盘空间。通过时间换空间...原创 2020-06-18 22:44:39 · 909 阅读 · 0 评论 -
Mysql的行锁和表锁
InnoDB 的行锁,就是通过锁住索引来实现的原创 2020-04-26 20:59:30 · 196 阅读 · 0 评论 -
Mysql的InnoDB内存结构和磁盘结构
InnoDB内存结构一、 Buffer Pool 主要分为3 个部分: Buffer Pool、Change Buffer、Adaptive Hash Index,另外还有一个(redo)log bufferBuffer Pool缓存的是页面信息,包括数据页、索引页。Change Buffer 写缓冲如果数据库大部分索引都是非唯一索引,并且业务是写多读少,不会在写数据后立刻读取,就可以使...原创 2020-04-24 16:22:19 · 913 阅读 · 0 评论 -
Mysql引擎Innodb和MyISAM的特点
MyISAM的特点支持表级别的锁(插入和更新会锁表)。不支持事务。拥有较高的插入(insert)和查询(select)速度。存储了表的行数(count 速度更快)适合:只读之类的数据分析的项目Innodb的特点支持事务,支持外键,因此数据的完整性、一致性更高。支持行级别的锁和表级别的锁。支持读写并发,写不阻塞读(MVCC)。特殊的索引存放方式,可以减少 IO,提升查询效率。...原创 2020-04-23 21:51:17 · 176 阅读 · 0 评论 -
Mysql 的分库分表
表的水平切分一、如何选择分区键:分区键要能尽量避免跨分片查询的发生。(例如,博客的id和用户id,以用户id分片好)分区键要能尽量使各个分片中的数据平均(使用哈希分配)二、如何存储无需分片的表每个分片中存储一份相同的数据(用于表本身量不大,字典列表,可更好提高查询效率,应用更新时要对其检查,更新数据)使用额外的节点统一存储(没有冗余的数据,应用不用维护多份相同数据,查询效率差)...原创 2020-04-21 17:21:50 · 117 阅读 · 0 评论 -
索引深入理解2-数据存储文件-使用规则
数据存储文件frm文件是 是 MySQL 里面表结构定义的文件,不管你建表的时候选用任何一个存储引擎都会生成InnoDBt_user.frmt_user.idbidb文件存储了表数据和索引InnoDB 中,主键索引和辅助索引是有一个主次之分的。辅助索引存储的是辅助索引和主键值。如果使用辅助索引查询,会根据主键值在主键索引中查询,最终取得数据。MyISAMt_...原创 2020-04-10 21:25:10 · 147 阅读 · 0 评论 -
索引的深入理解
索引索引定义平衡二叉树(AVL树)多路平衡查找树(B树)加强版多路平衡查找树(B+树)实例InnoDB 中的 B+Tree 的特点索引定义在 InnoDB 里面,索引类型有三种,普通索引、唯一索引(主键索引是特殊的唯一索引)、全文索引。1.普通(Normal):也叫非唯一索引,是最普通的索引,没有任何的限制。2.唯一(Unique):唯一索引要求键值不能重复。另外需要注意的是,主键索引...原创 2020-04-08 22:18:17 · 193 阅读 · 0 评论 -
mysql 关于索引的介绍
前提:创建库:创建表:create table `t_user`(`id` bigint(20) not null comment '玩家ID',`age` int(3) not null comment '年龄',`name` varchar(64) not null comment '姓名',PRIMARY KEY(`id`));1.创建索引(creat...原创 2019-07-30 15:33:16 · 241 阅读 · 0 评论 -
mysql命令报错-bash: mysql: command not found
mysql命令报错-bash: mysql: command not found时使用下面命令/usr/local/mysql/bin/mysql -h127.0.0.1 -uroot -p123456原创 2019-03-12 17:23:05 · 4574 阅读 · 0 评论 -
mysql5中大数据错误:Packet for query is too large (1117260 > 1048576). You can change this value on the ser
数据库刚开始安装时,默认使用my-small.inimy-small.ini (内存 <= 64M)my-medium.ini (内存 128M )my-large.ini (内存 512M)my-huge.ini (内存 1G-2G)my-innodb-heavy-4G.ini (内存 4GB)1、my-small.ini是为了小型数据库而设计的。不应该把...原创 2019-01-26 10:24:30 · 969 阅读 · 0 评论 -
mysql存储大数据时,Row size too large
2019-01-23 16:36:04 [ERROR] - JDBCExceptionReporter.logExceptions - Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help...原创 2019-01-23 20:45:29 · 937 阅读 · 0 评论 -
linux下mysql ERROR 2002 (HY000)错误解决方法 Can't connect to local MySQL server through socket
在linux上输入mysql出现Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)解决办法:使用ipmysql -h127.0.0.1 -u用户名 -p密码另一种办法:mysql --sock sock所在位置 -p密码...原创 2018-11-27 15:36:40 · 2753 阅读 · 0 评论