
mysql
文章平均质量分 83
java叶新东老师
你需要悄悄加班,默默写BUG,然后坑死所有人!
展开
-
mysql 索引底层详解
mysql三层架构+--------------+| 客户端 | +--------------+ ↓+--------------+| 服务端 | +--------------+ ↓+--------------+| 存储引擎 | +--------------+mysql server层结构当客户端需要查询一条sql时,在server端内部走了以下4步+--------------+| 连接器原创 2021-08-27 17:00:00 · 2007 阅读 · 6 评论 -
图解mysql事务的四个隔离级别
什么是隔离级别说到隔离级别,就要先谈到事务,因为隔离级别是基于事务而存在的,事务事务指的是多个数据同时修改时,要么一起成功,要么一起失败。事务就像是小时候玩超级玛丽一样,你每次过关,都必须在没有死亡的情况下才能过关,只要有一次死亡,那么这一关就得重新开始;超级玛丽不存在中途继续的情况,重新开始就意味着回滚(rollback),过关就代表提交(commit);myisam众所周知,,myisam是不支持事务的,所以myisam的每次修改数据时都是串行化的,也就是表锁;innodbmysql中只原创 2021-08-17 11:37:02 · 959 阅读 · 1 评论 -
mysq show processlist 查看会话连接信息
前言show processlist 命令可以看到当前正在运行的线程信息,每查询一次sql都会新建一个会话,执行完后会话自动断开。这个命令也可以用来查找sql死锁、查询慢以及cpu占用率高的是哪个条sql导致的;当系统出现死锁死后,找到对应id值,然后通过kill命令杀死正在死锁的线程以解决问题。示例如果你是普通用户,你只能查看自己执行过的线程,如果管理员用户,那么你可以查看所有的线程;接下来我们执行一条语句,因为这个表中有千万数据的,所以执行起来会有点慢,select count(*) from原创 2021-08-10 20:52:45 · 1570 阅读 · 0 评论 -
mysql执行计划详解、各字段说明
mysql执行计划 在企业的应用场景中,为了知道优化SQL语句的执行,需要查看SQL语句的具体执行过程,以加快SQL语句的执行效率。 可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。 官网地址: https://dev.mysql.com/doc/refman/5.5/en/explain-output.htmlmysql那三张著名的练习表在介绍explain 执行计划之前,我们先把这三张表提前建好,一原创 2021-08-06 18:27:11 · 826 阅读 · 0 评论 -
mysql show profiles 性能跟踪诊断工具
前言Show profiles最大的好处是可以查看执行sql语句时各个环节的执行时间,Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后。可以执行sqlselect version();查看当前数据库版本。开启 profiling启动数据库后,profiles默认是关闭的,并且开启后只存在当前会话,因为它是保存在内存中的,不会持久化存储,重新登录或者重启后就会重置;可通过下面的语句开启-- 以下2条语句选其一即可set profiling = 1;原创 2021-08-06 15:52:23 · 896 阅读 · 0 评论 -
mysql查看和修改系统参数
mysql 参数MySQL提供了相当多的系统参数,涉及方方面面。我们可以使用show关键字来查看:show variables like '%autocommit%';或者show status like '%xxx%';修改参数值mysql有一些参数是可以直接修改的,比如mysql的自动提交是默认开启,我们修改为关闭自动提交set autocommit = 1;当然也有些系统参数不能直接修改里面的值,当我们修改时会报错,就像这样:mysql> set @@ft_max_word原创 2021-08-06 13:51:09 · 3137 阅读 · 0 评论 -
mysql的锁机制,你真的了解吗?进来吧!用图表告诉你
什么是锁?锁的存在是为了数据的一致性,我们都知道mysql在修改数据层面是支持并发修改的,那么在多个线程同时修改一个数据时产生的线程安全问题;什么是线程安全呢?大家想象这样的场景,一个数据,在高并发场景下,如果大家都去修改它,那这个数据不就乱套了,所以就有了锁的限制,大家排队来修改这个数据,必须上一个人改完之后,下一个人才能进行修改;关于锁这个概念,还有另一种解释, 想象这样的场景,马桶只有一个,有10个人都想要上厕所,那么这个马桶同一时间只能被一个人使用(我从没见过2个人同时用一个马桶的场景),第一个原创 2021-08-05 22:46:15 · 1405 阅读 · 1 评论 -
mysql表分区的使用和底层原理
什么是分区表分区是将一个表的数据按照某种方式,比如按照时间上的月份,分成多个较小的,更容易管理的部分,但是逻辑上仍是一个表。个人理解起来,分区跟性能没有必然关系,分区更多的是从管理的角度出发的。还没出现分区表的时候,所有的数据都是存放在一个文件里面的,如果数据量太大,查询数据时总是避免不了需要大量io操作;使用分区表后,每个分区存放不同的数据。这样不但可以减少io。还可以加快数据的访问;为了保证MySQL的性能,我们都建议mysql单表不要太大,建议是:单表小于2G,记录数小于1千万,十库百表。如果原创 2021-08-02 23:22:02 · 2164 阅读 · 3 评论 -
mysql join底层原理
join算法mysql只支持一种join算法:Nested-Loop Join(嵌套循环连接),但Nested-Loop Join有三种变种:Simple Nested-Loop Join,简单嵌套Index Nested-Loop Join,索引嵌套Block Nested-Loop Join ,join buffer缓冲区嵌套(临时表)驱动表和非驱动表的区别驱动表就是主表,非驱动表就是从表,看以下sql就知道了,A就是驱动表,B就是非驱动表。select * from A left j原创 2021-08-01 20:18:38 · 3285 阅读 · 10 评论 -
mysql 回表、索引覆盖、最左匹配、索引下推
前言在执行一条sql的时候,在mysql内部都会通过以下四个流程+--------------+| 连接器 | +--------------+ \|/+--------------+| 分析器 | +--------------+ \|/+--------------+| 优化器 | +--------------+ \|/+--------------+| 执行器 | +------------原创 2021-07-31 14:09:40 · 1000 阅读 · 0 评论 -
centos7使用yum安装mysql数据库
centos7下使用yum安装mysqlCentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。1. 下载mysql的repo源wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm2. 安装mysql-community-release-el7-5...转载 2018-09-26 10:25:05 · 625 阅读 · 0 评论 -
java生成mysql数据库建表语句、字段、字段类型、字段注释,可实现不用mysqldump备份数据库
使用 mysqldump 备份数据库也是可行的,因为每次备份的时候都需要mysqldump这个文件, 我在windows备份时没问题,但是放到linux上面时,centos系统死活不认这个文件,但又不想装mysql,一气之下自己研究了个不需要mysqldump就可以备份的程序,如果看了以下代码还有不懂的地方,这个网站有我的联系方式http://www.huashuku.top/about.ht...原创 2018-09-06 10:11:58 · 5739 阅读 · 12 评论 -
解决mysql同一个用户多个密码的问题---远程密码和本地密码不一致
有时候,我们会发现,在远程登录数据库的时候用root用户是需要密码的,但是服务本地登录root时却不用密码,而且里面也没有我们要的数据库和表,这是为什么呢?1、我查询了mysql的user表之后才发现原因,执行sqlselect * from user;2、查询结果是这样的3、图中可以看到,里面竟然有5个root用户,而且有三个是没有密码的,这就明白原因了,原来我们本地服务器...原创 2018-08-24 13:04:25 · 10142 阅读 · 0 评论 -
解决mysql远程连接等待时间长的问题
在mysql服务器本地使用使用控制台访问数据库的时候很快,但是使用远程连接或者其他数据库软件连接时会等待很长时间,最多的时候等了十秒,特别是对一个程序员来说,这点时间会显得很漫长,解决办法也很简单,只需要在my.cnf文件的 [mysqld] 加入以下代码,即可解决问题,[mysqld]skip-name-resolve一般my.cnf 文件都是在mysql的安装目录中,因为我的m...原创 2018-08-24 12:49:36 · 4874 阅读 · 2 评论 -
解决mybatis_generator自动生成代码工具乱码
遇到这个问题也是搞了我一晚上都没解决,但本身就有代码强迫症的我,早上一起来就着手解决这个问题,我自己的个人网站就用到了这种技术生成数据库字段注释需要修改mybatis-generator-core-1.3.2.jar文件,这里有详细教程:点我打开百度上大部份的答案都是以下类似的解决方案,但我试了之后都不行 1、在每次运行 mvn mybatis-generator:gene...原创 2018-07-22 12:15:47 · 7135 阅读 · 3 评论 -
使用maven和mybatis自动生成代码配置
使用自动生成真的很方便,之前试过手写,但是无奈太慢而且容易出错,一急之下马上去 研究了下,没想到2个小时不到就研究出来了,废话不多说,我们正式开始,我自己的个人网站就用到了这种技术如果需要生成数据库字段的注释,请下载:点我打开 链接内的文件,里面有详细教程 准备工作: 1、下载 mysql-connector-java-5.0.8-bin.jar 驱动包,点...原创 2018-07-21 00:01:47 · 3267 阅读 · 1 评论 -
mysql插入中文报错java.sql.SQLException: Incorrect string value: '\xE6\x98\x88\xE8\xAE\xA152' for column
在往mysql数据库的表中插入中文数据的时候如果提示:Incorrect string value: '\xE4\xBC\x9A\xE5\x91\x98' for column 'recipient' at row 1 这个问题困扰了我三个多小时才解决,一开始去改mysql的varialbles参数 字符编码,发现根本就没作用,!!!mysql查询variables参数sqlshow varia...原创 2018-06-26 19:05:06 · 8960 阅读 · 1 评论