好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

MySQl总结

SQL基础

SQl简介

SQL全称是structure qurry language,由IBM在上个世纪70年代开发出来。

SQL语句的分类

DDL(数据定义数据) 主要是数据库内部对象的创建,删除,修改的操作语言 创建数据库 create database name 使用数据库 use dbname 删除数据库 drop database name 创建表 create table tablename(column_name_1,column_name_2) 删除表 drop table name 修改表 alter table name modify ename varchar(20) alter table name add age int (3) alter table name drop column age alter table name change age age1 int(4) alter table emp add birth date arter ename alter table name rename new_name DML(数据操作数据) 插入数据 insert into tablename(field1,field2 ) values(value1,value2) 更新数据 update tablename set field1 = value1,....where condition 删除记录 delete from tablename where condition 查询记录 select * from tablename where condition 查询不重复的记录 select distinct columname from tablename 条件查询 select * from tablename where condition 排序和限制 select * from tablename where condition order by field1 [desc|asc] select * from limit offset_start,row_count 聚合函数 select [field1,field2,...field] fun_name from table_name [where condition] [gruop by field1] [having condiyion] 表连接 左连接 右连接 子查询 in not in = !=
等等 记录联合 union 或者union all DCL(数据控制语句)

数据支持类型

数值类型

tingint smallint mediumint int bigint float double

日期时间类型

date datetime timestamp time year

ENUM类型

SET类型

MYSQL运算符(非常重要,特殊查询时能够用到)

算数运算符 比较运算符 逻辑运算符 位运算符 运算符的优先级

常用函数

字符串函数 数值函数 日期和时间函数 流程函数 其他函数

SQL开发

Mysql引擎概述

引擎的优缺点

设置引擎的方式

MyISAM的特点

InnoDB的特点

MERGE的特点

MeMORY的特点

合适的数据类型

char与varchar TEXT与BLOB 浮点数与定点数 日期类型选择

字符集

Unicode 汉字以及一些常见的字符集 怎么选择合适的字符集 字符集的设置 服务器级 数据库级 表级 字段级 数据库字符集和校验规则 表字符集和校对规则 列字符集和校对规则 连接字符集与校对规则 字符集的修改步骤

索引的设计和使用

设计索引的原则

使用唯一索引 使用短索引 不要过度使用索引

BTREE索引与HASH索引

视图

视图的特点

简单 安全 数据独立

视图操作

创建视图 删除视图 查看视图

存储过程和函数

什么是存储过程和函数 创建,修改存储过程或者函数 删除存储过程或者函数 查看存储过程和函数 状态 定义 信息 变量使用 定义 赋值 定义条件和处理 条件的定义 条件处理 流程控制 if case loop leave iterate repeat while

触发器

创建触发器 删除触发器 查看触发器 触发器的使用

事务控制和锁定语句

lock table 和 unlock table 事务控制 分布式事务的使用 原理 语法 可能的问题

SQL安全问题

sql注入

应对措施 prepareStatement + Bind-variable 使用转换函数 自定义函数进行校验

常用SQL技巧与常见问题

正则表达式

rand()提取随机行

group by 的with rollup 字句做统计

big group function做统计

SQL优化

优化sql的一般步骤,查询sql的执行频率,对频率高的sql语句进行优化能够达到效率提升的作用

查询SQL的执行频率

定位执行效率低下的sql语句

日志文件

分析低效sql的执行计划

确定问题并采用相应的优化措施

MySQL使用索引

使用索引 对于创建的多列索引,只要查询条件用到了最左边的列,索引一般会使用 对于like查询,后面如果是常量并且只有%号不在第一个字符串,索引才可能会被使用 对大的文本进行搜索,使用全文索引而不使用like‘%...%‘ 列名是索引,使用column_name is null 将会使用索引 存在索引但不适用索引 查看索引的使用情况

两个简单的优化方法

定期分析表和检查表 定期优化表

常用的sql优化

大批量的插入数据 优化insert语句 优化group by 语句 优化order by语句 优化嵌套查询

使用sql提示

use index ignore index\ force index

优化数据库对象

优化表的数据类型 拆分提高表的访问效率 逆规范化 使用中间表

锁问题

表级锁 行级锁 页面锁

myISAM表锁

查询表级锁的争用的情况

Mysql表级锁的锁模式

表共享读锁 表独占写锁

如何加表锁

并发插入

MyISAM的锁调度

事务及其ACID

A 原子性 C 一致性 I 隔离性 D 持久性

并发事务处理带来的问题

更新丢失 脏读 不可重复读 幻读

事务的隔离级别

未提交读 已提交读 可重复度 可序列化

间隔锁

InnoDB在不同级别隔离下的一致性读记锁的差异

什么时候使用表锁

死锁

应用优化

使用连接池

减少对MYSQL的访问

使用查询缓存

负载均衡

采用分布式数据库架构

MySQl总结

标签:优缺点   怎么   mem   查询缓存   事务处理   语句   一个   开发   pre   

查看更多关于MySQl总结的详细内容...

  阅读:24次