随笔分类 - MySQL
1
摘要:数据库的操作越来越成为整个应用的性能瓶颈,这对于Web应用尤其明显。关于数据库的性能,这并不只是DBA需要关心的,而更是后端开发需要去关注的事情。 |-- 服务器硬件的优化 |-- MySQL数据库配置优化 |-- CentOS系统针对mysql的参数优化 |-- 内核相关参数(/etc/sysct
阅读全文
摘要:锁在 MySQL 中是非常重要的一部分,锁对 MySQL 的数据访问并发有着举足轻重的影响。 一、锁的认识 锁的解释 计算机协调多个进程或线程并发访问某一资源的机制。 锁的重要性 在数据库中,除传统计算资源(CPU、RAM、I\O等)的争抢,数据也是一种供多用户共享的资源。如何保证数据并发访问的一致
阅读全文
摘要:什么是事务处理呢??事务处理是用来维护数据库的完整性的,它保证成批的MySQL操作要么完全执行,要么完成不执行。 MySQL 事务主要用于处理操作量大,复杂度高的数据。由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。在 MySQL 中只有使用了 Innodb 数
阅读全文
摘要:MySQL数据库中提供了很丰富的函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。例如,字符串连接函数可以很方便的将多个字符串连接在一起。 一、数学函数 ABS(X):返回X的绝对值。 select A
阅读全文
摘要:一、MySQL大小写敏感的控制 mysql是通过lower_case_table_names参数来控制大小写敏感的,该参数在[mysqld]结点下。具体的含义笔者从官网截了一张图。 注: ①关于lower_case_table_names参数对表名称或数据库名称大小写敏感的控制。 ② Unix下默认
阅读全文
摘要:一、为什么要小表驱动大表 类似循环嵌套。 for(int i=5;.......) { for(int j=1000;......) {} } 如果小的循环在外层,对于数据库连接来说就只连接5次,进行5000次操作,如果1000在外,则需要进行1000次数据库连接,从而浪费资源,增加消耗。这就是为什
阅读全文
摘要:一、什么是主从复制 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。 主从复
阅读全文
摘要:行锁偏向InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率低,但并发度高。 1)创建相关测试表tb_innodb_lock,注意数据库引擎为InnoDB。 drop table if exists test_innodb_lock; CREATE TABLE test_i
阅读全文
摘要:锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算机资源(如CPU、RAM、I/O等)的争用外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言
阅读全文
摘要:全局查询日志用于保存所有的sql执行记录,该功能主要用于测试环境,在生产环境中永远不要开启该功能。 一、如何开启全局查询日志 通过my.cnf配置开启该功能 注:对my.cnf文件配置后,需重启mysql。 ① 通过命令查看全局查询日志是否开启成功。 ② 查看全log_globalquery.log
阅读全文
摘要:使用脚本进行大数据量的批量插入,对特定情况下测试数据集的建立非常有用。 1)创建tb_dept_bigdata(部门表) create table tb_dept_bigdata( id int unsigned primary key auto_increment, deptno mediumin
阅读全文
摘要:Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。 分析步骤 #开启Show Profile功能,默认该功能是关闭的,使用前需开启 #插入测试数据 向tb_emp_bigda
阅读全文
摘要:慢查询日志是MySQL提供的一种日志记录,它记录MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的sql语句,该sql语句会被记录到慢查询日志中。慢查询日志主要与explain进行联合分析。 一、如何开启慢查询日志 默认情况下,MySQL数据库没有开启慢查询日志
阅读全文
摘要:在使用order by时,经常出现Using filesort,因此对于此类sql语句需尽力优化,使其尽量使用Using index。 1)创建test表。 drop table if exists test; create table test( id int primary key auto_i
阅读全文
摘要:join主要根据两表或多表之间列的关系,从这些表中进行数据的查询。 首先创建两张表:tb_emp(员工表)和tb_dept(部门表),并插入相关测试数据。 1)tb_emp表。 DROP TABLE IF EXISTS `tb_emp`; CREATE TABLE `tb_emp` ( `id` i
阅读全文
摘要:使用explain关键字可以模拟优化器执行sql查询语句,从而知道MySQL是如何处理sql语句。explain主要用于分析查询语句或表结构的性能瓶颈。(MySQL版本都为5.7.22。) 一、explain的作用 通过explain+sql语句可以知道如下内容: ①表的读取顺序。(对应id) ②数
阅读全文
摘要:一、索引是什么 MySQL官方对索引的定义:索引(Index)是帮助MySQL高效获取数据的数据结构。因此索引的本质就是数据结构。索引的目的在于提高查询效率,可类比字典、书籍的目录等这种形式。 可简单理解为“排好序的快速查找数据结构”。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数
阅读全文
摘要:一、DML(数据操作语言) 插入:insert into student values(01,'tonbby',99); (插入所有的字段)insert into student(id,name) values(01,'tonbby'); (插入指定的字段) 从一个或多个表查数据,插入到另外一个表:
阅读全文
摘要:SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL 。 我在这里简单介绍下DDL和DCL。 一、数据定义语言DDL(Data Definition Language) 数据库操作 创建数据库:create database school; 删除数
阅读全文
摘要:一、MySQL的完整架构体系 MySQL完整的架构体系: (1)Connectors 指的是不同语言中与SQL的交互。 (2)Connection Pool 管理缓冲用户连接,线程处理等需要缓存的需求。负责监听对 MySQL Server 的各种请求,接收连接请求,转发所有连接请求到线程管理模块。每
阅读全文
1