
MySql
姜秀丽
人一生中大部分时间都在工作,如果你的工作恰巧又是自己喜欢的,那么你的大部分时间就都在做喜欢的事情,何其乐哉!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL优化—Explain中Type和Extra的含义
一、Explain前言如之前的文章中所说,我们的SQL在交给执行引擎之前,是要经过查询优化器的。我们如何知道查询优化器是如何优化我们的SQL的,那就要用到explain这个关键字了。常规的用explain查询出的字段意义,本文不会详说,可以参考之前的文章。本文重点讲述容易被我们忽略和混淆的一些重点。二、show warnings当我们在执行了explain之后,紧跟着执行show warn...原创 2020-04-30 15:51:25 · 1032 阅读 · 0 评论 -
InnoDB中的锁与事务—理论+实战
一、InnoDB中的锁与事务InnoDB中是支持事务的。首先InnoDB中不只有行锁,也是有表锁的。二、pt-online-schema-change我们在修改表结构的时候,上的就是表的写锁,所以修改表结构,尤其是大表时,要尤其注意。pt-online-schema-change可以在不阻塞写入的情况下改动数据表,其原理如下:首先创建一个和你要执行的alter操作的表一样的空的表结构...原创 2020-04-28 15:35:52 · 178 阅读 · 0 评论 -
Myisam中的锁实战—如何验证读写锁
一、Myisam中的锁Myisam中有读锁与写锁。只有表锁,无行锁。那么也就是其中只有表级的行锁与表级的写锁。我们可以通过命令来模拟上锁与解锁的过程。二、上锁读锁:lock table a read;写锁:lock table a write;三、解锁unlock tables;四、查询锁show open tables;show open tables where...原创 2020-04-28 14:42:15 · 394 阅读 · 0 评论 -
只需两步,教你使用Mybatis-Plus代码生成器
MybatisPlus代码生成一、添加maven依赖<!--Mybatis plus--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <vers...原创 2019-12-05 11:18:41 · 806 阅读 · 0 评论 -
MySQL优化加原理
几个问题如何发现慢查询?为什么不建议使用订单号作为主键?为什么要在需要排序的字段上加索引?为什么字段加上函数或者计算就不走索引了?为什么不建议字段允许为NULL?理论MySQL逻辑架构MySQL逻辑架构整体分为三层,如下图:客户端:如,连接处理、授权认证、安全等功能核心服务:MySQL大多数核心服务均在这一层包括查询解析、分析、优化、缓存、内置函数(如,时...原创 2019-05-07 21:12:48 · 307 阅读 · 0 评论 -
MYSQL中的触发器
只能用于insert,delete与update语句。只能用于实体表。每个表最多支持6个触发器。触发器失败,它后面的逻辑也无法执行。在触发器执行的时候,存在一个名为NEW的虚拟表,和一个名为OLD的虚拟表。NEW中的数据可以更新,OLD中的数据不可改变。触发器有before和after,在语句执行前和后做一些附带的操作,before一般用作数据有效性的检查,after一般用作审计跟踪的场原创 2015-04-03 16:28:55 · 761 阅读 · 0 评论 -
MYSQL中的事务处理
标识事务的开始:start transaction;回滚用:rollback;提交用:commit;当提交或回滚的时候,事务自动结束。使用保留点:savepoint name; rollback to name;默认的mysql是自动提交的,如果要修改为不自动提交的,可以set autocommit=0;autocommit标志是针对每个连接,而不是服务器的。原创 2015-04-03 16:41:56 · 146 阅读 · 0 评论 -
MYSQL中的管理用户
查出当前的用户:use mysql; select user from user;创建用户:create user … identified by ….如果直接插入user表用户,密码需要用password函数进行加密。更改用户口令:set password for … = password(”);更改当前用户口令:set password=password(”);修改用户名:rename原创 2015-04-03 17:01:15 · 151 阅读 · 0 评论 -
MYSQL中的字符集与校对顺序
1、数据库都有字符集与校对顺序。 2、 校对顺序是指排列字段的时候,排序的规则,如按照什么字符集,是否区分大小写等。 3、SHOW CHARACTER SET;显示所有的字符集。 4、 SHOW COLLATION;显示所有可用的校对。 5、为了确定所用的字符集与校对:SHOW VARIABLES LIKE 'CHARACTER%';SHOW VARIABLES LIKE 'COLLATI原创 2015-04-03 16:52:59 · 252 阅读 · 0 评论 -
MYSQL中的游标
1、只能用于存储过程或者函数。 2、使用步骤:声明 打开 取数据 关闭。-- 定义游标DECLARE level_log_cursor CURSOR FOR SELECT account, channel, gateway, MIN(`level`) - 1 FROM level_logs;-- 循环原创 2015-04-03 16:08:19 · 216 阅读 · 0 评论 -
MYSQL中的SHOW命令
MYSQL中的SHOW命令可以帮助我们了解数据库的信息。 1. show databases;显示当前账号中的所有数据库名字。 2. show tables;显示当前数据库中的所有表的名字。 3. show columns from table_name;=describe table_name;显示指定表中的列的名字与特性。 4. show status;显示服务器的状态。 5原创 2015-03-17 13:41:08 · 285 阅读 · 0 评论 -
MYSQL中的全文搜索
首先需要在表中指定全文搜索的列。建立表的时候直接添加全文搜索: CREATE TABLE member ( id int(11) DEFAULT NULL, name char(200) DEFAULT NULL, FULLTEXT(name) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 创建表之后,添加全文搜索列。 查询的时候需要用同样的列,顺序也必须原创 2015-03-25 15:57:54 · 284 阅读 · 0 评论 -
MYSQL中的聚集函数
AVG():平均值,自觉忽略掉null的行。COUNT():计算行数,COUNT(*)会计算null,COUNT(column):会忽略null值的行。MAX():取最大值,自动忽略null,任何值都可以取max,如果是字符串,取最后一行。MIN() :取最小值,自动忽略null,任何值都可以取min,如果是字符串,取最前一行。SUM():返回指定列的和。以上聚集函数默认都是用 all 列原创 2015-03-19 11:42:40 · 219 阅读 · 0 评论 -
MYSQL中的子句顺序
selectfromwheregroup byhavingorder bylimit原创 2015-03-19 15:38:36 · 272 阅读 · 0 评论 -
MYSQL中的操纵表
创建表CREATE TABLEIF NOT EXISTS member ( id INT auto_increment, NAME CHAR (50) DEFAULT 'noname', PRIMARY KEY (id)) ENGINE = 'MYISAM';删除表DROP TABLE member;修改表增加列:ALTER TABLE member ADD provin原创 2015-03-26 16:00:52 · 158 阅读 · 0 评论 -
MYSQL中的语句
insert low_priority into table_name(column1, colomn2……) values (value1, value2……), (value1, value2……)可以同时插入多个值;low_priority:可以降低插入的优先级,放在insert和into之间,同时也可以放在update与delete语句中。insert select:同时可以达到插入原创 2015-03-25 17:21:59 · 186 阅读 · 0 评论 -
MYSQL中的正则表达式
用regexp关键字匹配。用|代表or的关系。用中括号来括住一段条件。用^来代表否定的意思。例如:[^123]ton 开头不是1、2或3的后面有ton的字符串。 用-来定义范围。例如:[1-9]用来定义1到9的所有数字。特殊字符使用\来做前导。例如:\-用来定义-这个字符。 为了匹配\需要\\。特殊空白符有\f:换页。 \n:换行。 \r:回车。 \t:制表。原创 2015-03-18 10:57:26 · 255 阅读 · 0 评论 -
MYSQL中的存储过程编写实例
此存储过程实现功能为:在目前的级别账号表account_exts上,通过升级日志表level_logs,回退到某一个时刻账号的级别状态,从而达到统计特定某一个时刻级别情况的目的。账号表:account_exts 升级日志表:level_logs 级别统计表:level_by_hours以下是相应的存储过程代码,请参考。CREATE PROCEDURE `count_level_status_by原创 2015-04-03 15:49:45 · 223 阅读 · 0 评论 -
MYSQL中的函数
文本函数:trim:ltrim,rtrim去掉空格的函数。upper:大写。lower:小写。left:返回串左边的字符。right:返回串右边的字符。length:返回串的长度。locate:返回串的一个子串。soundex:返回串的soundex值,发音类似的串。substring:返回子串的字符。concat:拼接函数,concat(a,b)日期和时间函数:时原创 2015-03-18 18:00:58 · 214 阅读 · 0 评论