• 暂时停更一段时间!
  • 近期网站将陆续进行前端页面改造!
  • 招募网站编辑,联系站长!

标签:MySQL

MySQL的使用注意事项

MySQL 本身的使用和配置有以下注意点MySQL 默认的连接数是 100 , 调整 MySQL 的最大连接数能够在一定程度上提高井发能力 。使用慢查询日志监测导致数据库响应缓慢的 SQL 语句 。MySQL 有一个常见的连接缓慢原因,那就是会根据域名做反向 DNS 查询 。 这个问题可以通过在 MySQL 中加入 skip-name-resolve ……

MySQL大表优化策略

当 MySQL 单表记录数过大时,数据库的 CRUD 性能会下降,需要如下的一些优化措施 。1 )限定数据的范围 对于大数据茸的数据表,全表扫描肯定是不可接受的 。 务必禁止不带任何限制数据范围条件的查询语句存在。 比如, 当用户查询订单历史数据时,可以控制在最近一个月的数据中进行筛选 。2 )读/写分离 经典的数据库拆分方案主库负责写 ,从库负责读……

数据库的锁机制

锁机制 MySQL 为了解决并发、数据安全的问题 ,使用了锁机制 。可以按照锁的粒度把数据库锁分为表级锁和行级锁。表级锁:是 MySQL 中锁定粒度最大的一种锁,对当前操作的整张表加锁, 实现简单,资源消耗较少, 加锁快 ,不会出现死锁。 其锁定粒度最大 , 触发锁冲突的概率最高,并发度最低 。 MyISAM 和 InnoDB 引擎都支持表级锁。行……

MySQL索引的使用

索引的使用 MySQL 索引使用的数据结构主要有 BTree 索引和哈希索引 。 对于哈希索引来说,底层数据结构就是哈希表,因此在绝大多数需求为单条记录查询的时候,可以选择使用晗希索引 ,查询性能最快;其余大部分索引场景,则建议选择 BTree 索引 。MySQL 的 BTree 索引使用的是 B 树中的 B+Tree ,但对于主要的两种存储引擎其实现……

数据库中的事务机制

事务机制关系型数据库是需要遵循 ACID 规则的,分别介绍如下 。A( Atomic )原子性:即事务要么全部做完,要么全部都不做。 只要其中一个操作失败,就认为事务失败,需要回滚 。C ( Consistency )一致性: 数据库要一直处于一致的状态 。I ( Isolation )独立性: 并发的事务之间不会互相影响 。D ( Dura……

MySQL数据同步中的Binlog

MySQL 的 Binlog 是用来做 POINT-IN-TIME 的恢复和主从复制的,由数据库上层生戚,是 SQL 执行的逻辑日志,在事务提交完成后进行一次写入 。Binlog 有如下 3 种格式 。1 ) StatementMySQL 的默认 Binlog 格式 。 每一条会修改数据的 SQL 都被记录到 bin-log 中, Slave 在复制……

MySQL查询缓存的使用

查询缓存的使用 my.cnf 中加入以下配置 ,重启 MySQL 开启查询缓存 :query_cache_type = 1query_cache_size = 60000MySQL 命令行执行以下命令,也可开启查询缓存:set global query_cache_type = 1;set global query_cache_s……

MySQL字符集和校对规则

字符集和校对规则在创建数据库、数据表的时候会指定 character 和 collate 。 如下:CRREATE DATABASE db name DEFAULT CHARSET SET utf8 COLLATE utf 8 generalci ;CREATE TABLE 、 note 、 ( `id` bigint(ll) u……

关系型数据库——MySQL存储引擎简介

MySQL关系型数据库是采用关系模型来组织数据的数据库。 所谓关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表格及其之间的联系所组成的一个数据组 。目前,用得最普遍的关系型数据库有 MySQL 、 Oracle 、 PostgreSQL 等 。 这里针对 Java 开发中最常用的 MySQL 进行阐述。存储引擎MySQL 主要有两种……

MySQL学习笔记

一、存储引擎InnoDBInnoDB 是 MySQL 默认的事务型存储引擎,只有在需要 InnoDB 不支持的特性时,才考虑使用其它存储引擎。实现了四个标准的隔离级别,默认级别是可重复读(REPEATABLE READ)。在可重复读隔离级别下,通过多版本并发控制(MVCC)+ 间隙锁(next-key locking)防止幻影读。主索引是聚簇索引,在……

CentOS下启动mysql出现“MySQL Daemon failed to start”解决办法

事故分析今天准备上线一个项目,配环境的时候,安装完 mysql 启动出现错误,截图如下:M ySQL Daemon failed to start. Starting mysqld: [FAILED]系统版本:CentOS6.8 64 位此时如果我直接输入 mysql -uroot -p 登录会报错:[mysql]ERROR 200……

深入浅出MySQL数据库(四)数据类型、存储引擎、常用函数

MySQL 中的数据类型数值型整数型浮点型字符串类型CHAR 效率高于 VARCHAR,CHAR 相当于拿空间换时间,VARCHAR 拿时间换空间CHAR 默认存储数据的时候,后面会用空格填充到指定长度;而在检索的时候会去掉后面空格;VARCHAR 在保存的时候不进行填充,尾部的空格会留下TEXT 列不能有默认值,检索的时候不存在大小写转换……

深入浅出MySQL数据库(三)MySQL数据操作

添加记录INSERT [INTO] tbl_name[(col_name,...)] {VALUE|VALUES}(VALUES...);不指定字段名称:INSERT tbl_name VALUE(value...) 需要按照建表时的字段顺序给每一个字段赋值列出指定字段:INSERT tbl_name(字段名称,...) VALUES(值,...……

深入浅出MySQL数据库(二)数据表相关操作

数据表相关操作思维导图数据表是数据库最重要的组成部分之一,数据是保存在数据表中。数据表由行(row)和列(column)来组成。每个数据表中至少有一列,行可以有零行一行或者多行组成。表名要求唯一,不要包含特殊字符,最好含义明确。创建表CREATE TABLE [IF NOT EXISTS] tbl_name( 字段名称 字段类型……

深入浅出MySQL数据库(一)数据库简介及相关操作

什么是数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。  常见数据库OracleDB2SQL ServerPostgre SQLMySQL  相关术语数据库系统(Database System):DBS数据库(Database)数据库管理系统(Database Man……

MySQL数据库的命令行操作教程(三)对数据库表记录进行操作(修改)

插入记录insert into 表名(列名 1,列名 2,列名 3……) values(值 1,值 2,值 3……);insert into 表名 values(值 1,值 2,值 3……);插入数据中文乱码问题解决办法方式一:【不建议!】直接修改数据库安装目录里面的 my.ini 文件的第 57 行方式二:set n……

MySQL数据库的命令行操作教程(二)对数据库表的操作

创建一张表create table 表名( 字段名 类型(长度) [约束], 字段名 类型(长度) [约束], 字段名 类型(长度) [约束]);查看数据库表show tables;查看表的结构desc 表名;删除一张表drop table 表名;修改表添加一列alter ta……

MySQL数据库的命令行操作教程(一)对数据库的操作

打开命令行在 DOS 命令窗口输入 mysql -hlocalhost -uroot -p回车 进入 mysql 数据库,其中-h 表示服务器名,localhost 表示本地;-u 为数据库用户名,root 是 mysql 默认用户名;-p 为密码,如果设置了密码,可直接在-p 后链接输入,如:-p123456,用户没有设置密码,显示 Enter pass……

MySQL(六)故障转移和恢复

故障转移也叫做切换,当主库出现故障时就切换到备库,使备库成为主库。故障恢复顾名思义就是从故障中恢复过来,并且保证数据的正确性。提升备库或切换角色提升一台备库为主库,或者在一个主-主复制结构中调整主动和被动角色。虚拟 IP 地址和 IP 托管为 MySQL 实例指定一个逻辑 IP 地址,当 MySQL 实例失效时,可以将 IP 地址转移到另一台 My……

MySQL(五)切分

随着时间和业务的发展,数据库中的表会越来越多,并且表中的数据量也会越来越大,那么读写操作的开销也会随着增大。垂直切分将表按功能模块、关系密切程度划分出来,部署到不同的库上。例如,我们会建立商品数据库 payDB、用户数据库 userDB 等,分别用来存储项目与商品有关的表和与用户有关的表。水平切分把表中的数据按照某种规则存储到多个结构相同的表中,例……

MySQL(四)查询性能优化

Explain用来分析 SQL 语句,分析结果中比较重要的字段有:– select_type : 查询类型,有简单查询、联合查询和子查询– key : 使用的索引– rows : 扫描的行数减少返回的列慢查询主要是因为访问了过多数据,除了访问过多行之外,也包括访问过多列。最好不要使用 SELECT * 语句……

MySQL(三)索引

索引是在存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现。索引能够轻易将查询性能提升几个数量级。对于非常小的表、大部分情况下简单的全表扫描比建立索引更高效。对于中到大型的表,索引就非常有效。但是对于特大型的表,建立和使用索引的代价将会随之增长。这种情况下,需要用到一种技术可以直接区分出需要查询的一组数据,而不是一条记录……

MySQL(二)数据类型

整型TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT 分别使用 8, 16, 24, 32, 64 位存储空间,一般情况下越小的列越好。INT(11) 中的数字只是规定了交互工具显示字符的个数,对于存储和计算来说是没有意义的。浮点数FLOAT 和 DOUBLE 为浮点类型,DECIMAL 为高精度小数类型。CPU ……

MySQL(一)存储引擎

 InnoDBInnoDB 是 MySQL 默认的事务型存储引擎,只有在需要 InnoDB 不支持的特性时,才考虑使用其它存储引擎。采用 MVCC 来支持高并发,并且实现了四个标准的隔离级别,默认级别是可重复读。表是基于聚簇索引建立的,它对主键的查询性能有很高的提升。内部做了很多优化,包括从磁盘读取数据时采用的可预测性读、能够自动在内存……