摘要: 锁在 MySQL 中是非常重要的一部分,锁对 MySQL 的数据访问并发有着举足轻重的影响。 一、锁的认识 锁的解释 计算机协调多个进程或线程并发访问某一资源的机制。 锁的重要性 在数据库中,除传统计算资源(CPU、RAM、I\O等)的争抢,数据也是一种供多用户共享的资源。如何保证数据并发访问的一致 阅读全文
posted @ 2020-09-19 22:41 codedot 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 什么是事务处理呢??事务处理是用来维护数据库的完整性的,它保证成批的MySQL操作要么完全执行,要么完成不执行。 MySQL 事务主要用于处理操作量大,复杂度高的数据。由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。在 MySQL 中只有使用了 Innodb 数 阅读全文
posted @ 2020-09-19 22:22 codedot 阅读(123) 评论(0) 推荐(0) 编辑
摘要: MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。例如,字符串连接函数可以很方便的将多个字符串连接在一起。 一、数学函数 ABS(X):返回X的绝对值。 select A 阅读全文
posted @ 2020-09-19 22:20 codedot 阅读(103) 评论(0) 推荐(1) 编辑
摘要: 一、MySQL大小写敏感的控制 mysql是通过lower_case_table_names参数来控制大小写敏感的,该参数在[mysqld]结点下。具体的含义笔者从官网截了一张图。 注: ①关于lower_case_table_names参数对表名称或数据库名称大小写敏感的控制。 ② Unix下默认 阅读全文
posted @ 2020-09-19 22:16 codedot 阅读(2310) 评论(0) 推荐(0) 编辑
摘要: 一、为什么要小表驱动大表 类似循环嵌套。 for(int i=5;.......) { for(int j=1000;......) {} } 如果小的循环在外层,对于数据库连接来说就只连接5次,进行5000次操作,如果1000在外,则需要进行1000次数据库连接,从而浪费资源,增加消耗。这就是为什 阅读全文
posted @ 2020-09-19 21:53 codedot 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 一、什么是主从复制 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。 主从复 阅读全文
posted @ 2020-09-19 21:51 codedot 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 行锁偏向InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率低,但并发度高。 1)创建相关测试表tb_innodb_lock,注意数据库引擎为InnoDB。 drop table if exists test_innodb_lock; CREATE TABLE test_i 阅读全文
posted @ 2020-09-19 17:23 codedot 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算机资源(如CPU、RAM、I/O等)的争用外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言 阅读全文
posted @ 2020-09-19 16:51 codedot 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 全局查询日志用于保存所有的sql执行记录,该功能主要用于测试环境,在生产环境中永远不要开启该功能。 一、如何开启全局查询日志 通过my.cnf配置开启该功能 注:对my.cnf文件配置后,需重启mysql。 ① 通过命令查看全局查询日志是否开启成功。 ② 查看全log_globalquery.log 阅读全文
posted @ 2020-09-19 16:49 codedot 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 使用脚本进行大数据量的批量插入,对特定情况下测试数据集的建立非常有用。 1)创建tb_dept_bigdata(部门表) create table tb_dept_bigdata( id int unsigned primary key auto_increment, deptno mediumin 阅读全文
posted @ 2020-09-19 16:43 codedot 阅读(160) 评论(0) 推荐(0) 编辑
摘要: Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。 分析步骤 #开启Show Profile功能,默认该功能是关闭的,使用前需开启 #插入测试数据 向tb_emp_bigda 阅读全文
posted @ 2020-09-19 16:27 codedot 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 慢查询日志是MySQL提供的一种日志记录,它记录MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的sql语句,该sql语句会被记录到慢查询日志中。慢查询日志主要与explain进行联合分析。 一、如何开启慢查询日志 默认情况下,MySQL数据库没有开启慢查询日志 阅读全文
posted @ 2020-09-19 16:16 codedot 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 在使用order by时,经常出现Using filesort,因此对于此类sql语句需尽力优化,使其尽量使用Using index。 1)创建test表。 drop table if exists test; create table test( id int primary key auto_i 阅读全文
posted @ 2020-09-19 15:53 codedot 阅读(111) 评论(0) 推荐(0) 编辑
摘要: join主要根据两表或多表之间列的关系,从这些表中进行数据的查询。 首先创建两张表:tb_emp(员工表)和tb_dept(部门表),并插入相关测试数据。 1)tb_emp表。 DROP TABLE IF EXISTS `tb_emp`; CREATE TABLE `tb_emp` ( `id` i 阅读全文
posted @ 2020-09-19 14:17 codedot 阅读(185) 评论(0) 推荐(0) 编辑