
MySQL
文章平均质量分 93
yyangqqian
这个作者很懒,什么都没留下…
展开
-
Mysql 之基于SpringBoot实现读写分离
文章目录AbstractRoutingDataSource动态数据源切换快速构建SpringMVC项目编写AbstractRoutingDataSource动态数据源切换AbstractRoutingDataSource动态数据源切换快速构建SpringMVC项目项目结构:web.xml:<?xml version="1.0" encoding="UTF-8"?><...原创 2019-10-17 15:52:44 · 207 阅读 · 0 评论 -
MySQL 之4种方式避免重复插入数据
最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常。新建了一个User测试表,主要有id,username,sex,address这4个字段,其中主键为id(自增),同时对username字段设置了唯一索引。insert ignore into插入数据时,如果数据存在,则忽略此次插入,前提条件是插入的数据字段设置了主键或唯一索引。测试SQL语句如下,当插入本条数据时,MySQL数据库会首先根据us原创 2020-09-17 17:54:06 · 1077 阅读 · 0 评论 -
MySQL 之索引和存储引擎
文章目录什么是索引MySQL常用的索引各种索引的应用场景索引的两大类型hash与btree正确使用索引联合索引Mysql索引失效场景什么是索引索引在MySQL中也叫做键或者key(primary key,unique key,index key),是存储引擎用于快速找到记录的一种数据结构。索引可以减少IO次数,加速查询。primary key和unique key,除了有加速查询的效果之外,还有约束的效果,primary key 不为空且唯一,unique key 唯一,而index key只有加速查原创 2020-09-02 14:51:08 · 1297 阅读 · 2 评论 -
MySQL 之 case when 使用
case when 的几种使用情况: 等值转换、范围转换、列转行操作case 后面填了字段,就会和 when 后面的字段比较,相等取 then 后面的值,否则取 else 后面的值。case when 连一起,when 后面必须是一个表达式,类似于 if () else if () else。等值转换:表内容SELECT NAME AS '名字', ( CASE sex WHEN 0 THEN '女' ELSE '男' END ) AS '性别'FROM st原创 2020-08-31 23:33:18 · 745 阅读 · 1 评论 -
MySQL 之分页查询
rows:记录数offset:偏移量SELECT * FROM table LIMIT [offset,] rowsSELECT * FROM table LIMIT rows OFFSET offsetLIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。(换句话说,LIMIT n 等价于 LIMIT 0,n )如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的原创 2020-06-28 17:48:40 · 1615 阅读 · 0 评论 -
MySQL 之SQL编写技巧
SQL 进阶技巧(上)https://mp.weixin.qq.com/s/FDs5-KnQIjAQzPpdYB2iYwSQL 进阶技巧(下)https://mp.weixin.qq.com/s/2mHcrtwl36E1KBYUxakVww原创 2020-06-17 09:40:48 · 237 阅读 · 0 评论 -
MySQL 之执行计划
explain用法详解原创 2020-06-16 14:08:01 · 1781 阅读 · 0 评论 -
MySQL 之共享锁和排他锁
文章目录共享锁排他锁事物命令事物实战对数据加排他锁对数据加共享锁验证InnoDb引擎中修改语句自动加排他锁死锁案例丢失更新场景共享锁又称读锁,共享锁就是多个事务对于同一数据可以共享一把锁,都能访问数据。共享锁和共享锁是不冲突的,但是和排他锁是冲突的。加共享锁可以使用select * from user where id =1 lock in share mode语句。排他锁又称写锁,排他...原创 2020-04-03 11:17:00 · 826 阅读 · 0 评论 -
MySQL 之在Windows子Ubuntu中安装Mysql
文章目录Windows安装子UbuntuUbuntu更新源安装MysqlMysql多实例安装主从配置配置master配置slave配置master和slave链接Windows安装子UbuntuUbuntu更新源Ubuntu自带的软件源列表更新很慢,所以我们切换成阿里提供的软件源列表。# 备份自带的软件源列表cp /etc/apt/sources.list /etc/apt/sour...原创 2020-03-08 22:26:46 · 390 阅读 · 0 评论 -
MySQL 之自己实现sequence
Oracle的Sequence是一个很好的主键生成策略,但是MySQL并不具有sequence语法,下面在MySQL中来模拟实现一个sequence。1、建一张表e_sys_sequence用来记录序列名称和值DROP TABLE IF EXISTS e_sys_sequence;CREATE TABLEe_sys_sequence( name VARCHAR(64) NOT N...原创 2020-02-11 21:55:39 · 439 阅读 · 0 评论 -
MySQL 之分库分表技术ShardingJDBC
参考:https://shardingsphere.apache.org/document/current/cn/overview/https://www.jianshu.com/p/52ccdb7d5683https://mp.weixin.qq.com/s/M0e5u8V_c2sv6aYJHl0Y6Qhttps://zhuanlan.zhihu.com/p/41705760...原创 2020-02-10 23:06:29 · 1030 阅读 · 0 评论 -
MySQL 之安装Mysql5.7
文章目录下载MySQL安装包安装MySQL下载MySQL安装包下载地址:https://dev.mysql.com/downloads/mysql/这里我们选择压缩包方案安装Mysql。安装MySQL1、在解压目录里新建my.ini配置文件,写入以下内容:[mysql]# 设置mysql客户端默认字符集default-character-set=utf8[mysqld]...原创 2019-12-07 19:38:16 · 2297 阅读 · 1 评论 -
MySQL 之drop、truncate、delete的区别
(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。(2)表和索引所占空间。当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始...原创 2019-02-26 18:09:54 · 124 阅读 · 0 评论 -
MySQL 之SQL的几种连接查询
SQL的几种连接查询数据库数据:1.内连接2.外连接2.1.左联接:2.2.右连接:2.3.全连接:3.交叉连接SQL连接可以分为内连接、外连接、交叉连接。数据库数据:stu表book表1.内连接1.1.等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。1.2.不等值连接:在连接条件使用除等于运算符以外的其它比较运算符...原创 2019-02-26 17:47:46 · 1553 阅读 · 0 评论