下载地址:http://dev.mysql.com/downloads/file/?id=467269
1.解压到自定义目录:我解压到了D盘的根目录
2.复制my-default.ini 重命名 my.ini
配置如下:
[mysql]# 设置mysql客户端默认字符集defau
1.打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件;
2.重启MySQL服务;
3.通过cmd行进入MySQL的bin目录,输入“mysql -u root -p”(不输入密码),回车即可进入数据库;
4.执行“use mysq
前言:
我一直想不到一个好的标题应该怎么写。我想MySQL的一些重要的内容。我在两次面试中都遇到过的,但直接用MySQL标题好像又不太贴切。干脆就是所写的内容吧。
MySQL事务:
transaction
Transactions are atom
use test;
create table t1(tid smallint(5) unsigned auto_increment,tname varchar(50),tkecheng varchar(50),tgrade smallint(10),primary key(tid))ENGINE=i
介绍
本篇主要通过汇总网上的大牛的知识,简单介绍一下如何使用mysql的执行计划,并根据执行计划判断如何优化和是否索引最优。
执行计划可显示估计查询语句执行计划,从中可以分析查询的执行情况是否最优,有助于对不使用索引的语句进行优化。EXPLAIN对每个查询返回一行信息,列出了有序的表格,My
对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能。原理不难理解,基于MySQL的row格式的binlog中,记录历史的增删改SQL信息,基于此解析出来对应的SQL语句
尝试了一下MySQL 8.0的部分新特性。
如果用过MSSQL或者是Oracle中的窗口函数(Oracle中叫分析函数), 然后再使用MySQL 8.0之前的时候,就知道需要在使用窗口函数处理逻辑的痛苦了,虽然纯SQL也能实现类似于窗口函数的功能,但是这种SQL在可读
1.MySQL数据库基础
显示当前的服务器版本 SELECT VERSION();
显示当前的日期时间 SELECT NOW();
显示当前用户 SELECT USER();
查看数据库 SHOW DATABASES;
查看警告 SHOW WARNINGS;
2.MySQL语句的
旧,
查询语句类型: 简单查询 多表查询 子查询(嵌套查询)
查询语法:
SELECT [ DISTINT ] :过滤掉重复的行 field_name :field_name为字段名,选择要查询的列
FROM table_
[mysql]port=3306socket=/var/lib/mysql/mysql.sockdefault-character-set = utf8mb4
[mysqld]server-id=2log-bin=mysql-bin
datadir=/data/mysqlsocket=/var/li
create(创建表)标准的建表语句:
create table [模式名.]表名
(
#可以有多个列定义
columnName1 dataType [default expr(这是默认值)],
...
)
圆括号里可以包含多个列定义,每个列定义之间用英文逗号(,)隔开
MySQL预处理技术:1.减轻服务器压力2.防止sql注入,把传递过去的危险字符也只当做参数处理3.将sql语句强制一分为二:第一部分为前面相同的命令和结构部分,第二部分为后面可变的数据部分基本使用
prepare sql_1 from "select * from mass_list";
exe
1.Scale(扩展):从数据库来看,就是让数据库能够提供更强的服务能力
ScaleOut: 是通过增加处理节点的方式来提高整体处理能力
ScaleUp: 是通过增加当前处理节点的处理能力来提高整体的处理能力
2.事务最小化原则:
避免分布式事务的解决方案
a)进行ScaleOut 设计的时候合
数据库约束: 约束是在表上强制执行的数据校验规则,主要用于保证数据库里数据的完整性。 除此之外,当表中的数据存在相互依赖性时,可以保证相关的数据不被删除。根据约束对数据列的限制,约束可分为如下两类: 单列约束: 每个约束只约束一列
USE 数据库名称1;DROP PROCEDURE IF EXISTS 数据库名称1.存储过程名称;delimiter $$CREATE PROCEDURE 数据库名称1.存储过程名称(in v_count bigint,in v_count2 bigint)BEGINset @vCount1=v_
MySQL管理表和索引
创建数据库:
CREATE DATABASE|SCHEMA [IF NOT EXISTS] db_name [CHARACTER SET=] [COLLATE=]
删除数据库:
DROP {DATABASE | SCHEMA} [IF EXISTS] db
[root@VM_0_7_centos data]# vim /etc/my.cnf
[root@VM_0_7_centos data]# vim /etc/my.cnf
[root@VM_0_7_centos data]# /etc/init.d/mysqld restart
Shuttin
1.启动mysql时,一直不成功,查看错误日志 /var/log/mysql/error.log
2.主要的错误信息有如下几条:
[ERROR] InnoDB: mmap(136151040 bytes) failed; errno 12
[ERROR] InnoDB: Cannot alloc
MySQL的MyISAM、InnoDB引擎默认均使用B+树索引(查询时都显示为“BTREE”),本文讨论两个问题:
为什么MySQL等主流数据库选择B+树的索引结构?
如何基于索引结构,理解常见的MySQL索引优化思路?
为什么索引无法全部装入内存
索引结构的选择基于这样一个性质:大数据量时,索引无
一、简介
pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行