首页
统计
关于
Search
1
Sealos3.0离线部署K8s集群
1,086 阅读
2
类的加载
742 阅读
3
Spring Cloud OAuth2.0
726 阅读
4
SpringBoot自动装配原理
691 阅读
5
集合不安全问题
588 阅读
笔记
Java
多线程
注解和反射
JVM
JUC
设计模式
Mybatis
Spring
SpringMVC
SpringBoot
MyBatis-Plus
Elastic Search
微服务
Dubbo
Zookeeper
SpringCloud
Nacos
Sentinel
数据库
MySQL
Oracle
PostgreSQL
Redis
MongoDB
工作流
Activiti7
Camunda
消息队列
RabbitMQ
前端
HTML5
CSS
CSS3
JavaScript
jQuery
Vue2
Vue3
Linux
容器
Docker
Kubernetes
Python
FastApi
登录
Search
标签搜索
Java
CSS
mysql
RabbitMQ
JavaScript
Redis
JVM
Mybatis-Plus
Camunda
多线程
CSS3
Python
Spring Cloud
注解和反射
Activiti
工作流
SpringBoot
Mybatis
Spring
html5
蘇阿細
累计撰写
389
篇文章
累计收到
4
条评论
首页
栏目
笔记
Java
多线程
注解和反射
JVM
JUC
设计模式
Mybatis
Spring
SpringMVC
SpringBoot
MyBatis-Plus
Elastic Search
微服务
Dubbo
Zookeeper
SpringCloud
Nacos
Sentinel
数据库
MySQL
Oracle
PostgreSQL
Redis
MongoDB
工作流
Activiti7
Camunda
消息队列
RabbitMQ
前端
HTML5
CSS
CSS3
JavaScript
jQuery
Vue2
Vue3
Linux
容器
Docker
Kubernetes
Python
FastApi
页面
统计
关于
搜索到
102
篇与
的结果
2020-11-05
数据库设计规范
软件开发中,关于数据库的设计分析需求:分析业务和需要处理的数据库的需求概要设计:设计关系图 ,即E-R图设计数据库的步骤:(个人博客)收集信息,分析需求用户表(用户登录退出,个人信息,写博客,创建分类)分类表(文章分类,谁创建的)文章表(文章的信息)评论表友链表自定义表(系统信息,某个关键字,或者一些主字段) key:value*说说表(发表心情 id content create_time)标识实体(把需求具体到每个字段)标识实体之间的关系写博客:user-->blog创建分类:user-->category关注:user-->user友链:links评论:user-user-blog
2020年11月05日
106 阅读
0 评论
0 点赞
2020-11-04
MySQL权限管理
1、用户管理SQL命令操作用户表:mysql.user本质:对这张表进行增删改查-- 创建用户 CREATE USER 用户名 IDENTIFIED BY '密码' CREATE USER ceshi IDENTIFIED BY '123456'; -- 修改密码(修改当前用户密码) SET PASSWORD = PASSWORD('1234567'); -- 修改指定用户密码 SET PASSWORD FOR ceshi = PASSWORD('1234567'); -- 重命名 RENAME USER 原用户名 TO 新用户名; RENAME USER ceshi TO ceshi01; -- 用户授权 GRANT ALL PRIVILEGES 全部的权限 库.表 -- ALL PRIVILEGES 此处的授权与root用户有区别(除了给别人授权,其他的都能干) GRANT ALL PRIVILEGES ON *.* TO ceshi; -- 查询权限 SHOW GRANTS FOR ceshi; -- 查看指定用户的权限 SHOW GRANTS FOR root@localhost; -- root用户的权限:GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION -- 撤销权限 REVOKE 哪些权限,在哪个库撤销,给谁撤销 REVOKE ALL PRIVILEGES ON *.* FROM ceshi; -- 删除用户 DROP USER ceshi;
2020年11月04日
98 阅读
0 评论
0 点赞
2020-11-04
MySQL备份
为什么要备份:保证重要的数据不丢失数据转移MySQL数据备份的方式:直接拷贝物理文件在可视化工具中手动导出使用命令行导出 mysqldump# 导出 # mysqldump -h 主机 -u用户名 -p密码 数据库 表名 >物理磁盘位置/文件名 mysqldump -hlocalhost -uroot -p123456 school student >D:/a.sql # mysqldump -h 主机 -u用户名 -p密码 数据库 表名1 表名2 表名3 >物理磁盘位置/文件名 mysqldump -hlocalhost -uroot -p123456 school student student01 student02 >D:/b.sql # mysqldump -h 主机 -u用户名 -p密码 数据库 >物理磁盘位置/文件名 mysqldump -hlocalhost -uroot -p123456 school >D:/c.sql #导入 #登录的情况下,切换到指定数据库 # source 备份文件 source D:/a.sql
2020年11月04日
148 阅读
0 评论
0 点赞
2020-11-04
索引
MySQl官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干:就可以得到索引的本质:索引是数据结构。1、索引的分类在一个表中,主键索引只能有一个,唯一索引可以有多个主键索引 (PRIMARY KEY)唯一的标识,主键不可重复,只能有一个列作为主键唯一索引 (UNIQUE KEY)避免重复的列出现,唯一索引可以重复,多个列都可以标识为 唯一索引常规索引(KEY/INDEX)-默认的,通过index,key关键字来设置全文索引(FullText)在特定的数据库引擎下才有,MyISAM快速定位数据基础语法-- 索引的使用 -- 1、在创建表的时候给字段增加索引 -- 2、创建完毕后,增加索引 -- 显示所有的索引信息 SHOW INDEX FROM account; -- 增加一个全文索引 (索引名) 列名 ALTER TABLE shop.account ADD FULLTEXT INDEX `name`(`name`); -- EXPLAIN 分析sql执行的状况 EXPLAIN SELECT * FROM account; -- 非全文索引 EXPLAIN SELECT * FROM account WHERE MATCH(name) AGAINST('a');2、测试索引CREATE TABLE `test_user`( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(50) DEFAULT '' COMMENT '用户名', email VARCHAR(50) NOT NULL COMMENT '邮箱', phone VARCHAR(50) DEFAULT '' COMMENT '手机号', gender TINYINT(4) UNSIGNED DEFAULT '0' COMMENT '性别(0:男,1:女)', passwd VARCHAR(100) NOT NULL COMMENT '密码', age TINYINT(4) DEFAULT '0' COMMENT '年龄', create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) )ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT '用户表'; -- 插入100万数据 DELIMITER $$ -- 写函数之前必须要写,用作标志 CREATE FUNCTION mock_data() RETURNS INT BEGIN DECLARE num INT DEFAULT 1000000; DECLARE i INT DEFAULT 0; WHILE i<num DO -- 插入语句 INSERT INTO test_user(`name`,`email`,`phone`,`gender`,`passwd`,`age`) VALUES(CONCAT('用户',i),'281463547@qq.com', CONCAT('13',FLOOR(RAND()*((999999999-1000000)+1000000))), FLOOR(RAND()*2),UUID(),FLOOR(RAND()*100)); SET i=i+1; END WHILE; RETURN i; END; SELECT mock_data(); SELECT * FROM test_user WHERE `name` = '用户19998'; -- 查询时间3.622s SELECT * FROM test_user WHERE `name` = '用户19998'; -- 查询时间2.349s EXPLAIN SELECT * FROM test_user WHERE `name` = '用户19998'; -- rows 992262 -- id_表名_字段名 -- 语法: CREATE INDEX 索引名 ON 表(字段名) CREATE INDEX id_test_user_name ON test_user(`name`); -- 创建用时18.442s SELECT * FROM test_user WHERE `name` = '用户19998'; -- 创建索引后查询用时0.028s SELECT * FROM test_user WHERE `name` = '用户19998'; -- 0.026s EXPLAIN SELECT * FROM test_user WHERE `name` = '用户19998'; -- rows 1注:索引在小数据量的时候用处不大,但在大数据的时候,区别十分明显3、索引原则索引不是越多越好不要对经常变动的数据加索引小数据量的表不需要加索引索引一般加在经常查询的字段上索引的数据结构Hash类型的索引BTree:InnoDB的默认数据结构
2020年11月04日
171 阅读
0 评论
0 点赞
2020-11-04
数据表的类型
-- 关于数据库引擎 /*INNODB 默认使用 MYISAM 早年使用 */ MYISAMINNODB事务支持NoYes数据行锁定NoYes外键约束NoYes全文索引YesNo表空间的大小较小较大,约为2倍常规使用操作:MYISAM 节约空间,速度较快INNODN 安全性高,事务的处理,多表多用户操作
2020年11月04日
76 阅读
0 评论
0 点赞
2020-11-02
数据库事务ACID
事务:要么都成功,要么都失败1、A给B转账 A 1000 -->200 B 2002、B收到A的钱 A 800 --> B 400将sql放在一个批次中去执行事务ACID原则:原子性,一致性,隔离性,持久性原子性(Atomicity)要么都成功,要么都失败一致性(Consistency)事务前后的数据完整性要保持一致(A、B一共有1000块钱,不论A和B怎么转账,最终两人钱的总和是1000块)隔离性(Isolation)多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离持久性(Durability)事务一旦提交则不可逆,事务提交的结果被持久化存储到数据库中隔离所导致的一些问题脏读:指一个事务读取了另一个事务未提交的数据。不可重读:在一个事务内读取表中的某一行数据,多次读取的结果不同。(这个不一定是错误,需具体场景具体分析)虚读(幻读):指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。-- 事务 -- mysql是默认开启事务自动提交的 SET autocommit = 0; /*关闭*/ SET autocommit = 1; /*开启*/ -- 手动处理事务 -- 1、关闭自动提交 SET autocommit = 0; -- 2、事务开启 START TRANSACTION; -- 标记一个事务的开始,从这之后的sql都在同一个事务内 INSERT xx INSERT xxx -- 提交:持久化(成功) COMMIT -- 回滚:返回之前的状态(失败) ROLLBACK -- 3、事务结束 SET autocommit = 1; -- 开启自动提交 SAVEPOINT 保存点名称 -- 设置一个事务的保存点 ROLLBACK TO SAVEPOINT -- 回滚到保存点 RELEASE SAVEPOINT 保存点名称 -- 撤销保存点模拟转账实例-- 转账 CREATE DATABASE shop CHARACTER SET utf8 COLLATE utf8_general_ci; use shop; CREATE TABLE `account`( id int(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, money DECIMAL(9,2) NOT NULL, PRIMARY KEY (id) )ENGINE=INNODB DEFAULT CHARSET=utf8; INSERT INTO account(name,money) VALUES('a',1000.00),('b',500.00); -- 模拟转账:事务 SET autocommit = 0; -- 关闭自动提交 START TRANSACTION -- 开启事务(一组事务) UPDATE account SET money=money-500 where name='a'; -- a减500 UPDATE account SET money=money+500 where name='b'; -- b加500 COMMIT; -- 提交事务,提交之后数据被持久化存储 ROLLBACK; -- 回滚 SET autocommit = 1; -- 恢复默认提交
2020年11月02日
187 阅读
0 评论
0 点赞
2020-11-02
MD5加密算法
MD5:主要增强算法复杂度和不可逆性。-- 测试MD5 CREATE TABLE `testmd5`( id INT(11) NOT NULL, name VARCHAR(20) NOT NULL, pwd VARCHAR(255) NOT NULL )ENGINE=INNODB DEFAULT CHARSET=utf8; -- 明文密码 INSERT INTO testmd5 VALUES(1,'孙笑川','12345'),(2,'刘波','12345'),(3,'Giao哥','12345'); -- 加密 UPDATE testmd5 SET pwd=MD5(pwd) WHERE id=1; -- 插入的时候加密 INSERT INTO testmd5 VALUES(4,'孙笑川',MD5('12345')); -- 如何校验:将用户传递进来的密码,进行加密,然后比对加密后的值 SELECT * FROM testmd5 WHERE name='孙笑川' AND pwd=MD5('12345');
2020年11月02日
71 阅读
0 评论
0 点赞
2020-10-26
Ubuntu 18.04安装php 7.2
1、更新apt源apt-get update 2、添加php源apt-get install software-properties-common python-software-properties add-apt-repository ppa:ondrej/php apt update 3、执行执行 apt list | grep php7 查看php安装包apt list | grep php7 4、安装apt-get install php7.2 安装完成后,输入php --version查看是否安装成功注:上述安装php的命令会同时安装Apache2服务执行以下命令卸载即可sudo service apache2 stop sudo apt-get remove apache2* sudo apt-get autoremove
2020年10月26日
112 阅读
0 评论
0 点赞
1
...
10
11
12
13