MySQL高级特性
MySQL管理
用户管理
CREATE USER username IDENTIFIED BY 'password'; 新建用户
CREATE USER@’%’ IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO username@'%'; 赋予对应的权限
FLUSH PRIVILEGES;
新建用户之后可以使用如下命令来删除用户:
DROP USER username; 删除用户
DELETE FROM user where User='username'; 删除用户,需要首先use mysql
grant语句赋予用户相应的权限,通俗的讲,grant相当于以下sql语句:
grant priv_set on dbname to username;
如何查看用户的相应权限呢?
SHOW GRANTS FOR username;
如何撤销用户对应的权限?
REVOKE ALL PRIVILEGES ON dbname.table FROM username;
REVOKE INSERT ON dbname.table FROM username; 撤销创建表权限
用户管理更新过后请使用FLUSH PRIVILEGES,否则可能会出现ERROR 1396错误。
表数据复制
利用select可以实现表结构与数据的同步复制。
CREATE TABLE tablename SELECT * FROM oldtablename;
CREATE TABLE tablename SELECT * FROM oldtablename where id < 10;
CREATE TABLE tablename LIKE oldtablename; 利用linke语句也可以实现表的复制
数据库备份与恢复
数据库的导出:
mysqldump -h x.x.x.x -u root database > backup.sql -p; 输入数据密码后数据库导出到backup.sql文件中
mysql -h x.x.x.x -u root database < backup.sql -p; 执行数据恢复操作
执行数据库的恢复操作时database必须存在,否则恢复数据时找不到对应的数据库。
利用source命令,也可以执行数据恢复操作:
mysql> use xxx;
mysql> source backup.sql
MySQL的存储引擎
存储引擎就是表的类型,MySQL有多种存储引擎,不同的存储引擎有不同的存储机制、索引技术和锁定水平。
MySQL存储引擎分为事务安全表的引擎和非事务安全表的引擎,事务是数据库中一个重要概念,事务具有原子性、一致性、隔离性和持久性4中特性。事务是为了保护数据的安全性,防止数据库出现故障而导致数据库中数据不一致。事务安全表可以使用COMMIT语句合并多条语句,适合需要经常更新的表;非事务安全表由于没有事务支持,处理速度较快,存储时占用内存较小,数据表执行更新占用内存少。
MyISAM引擎
MyISAM适合读操作次数远大于写操作的数据库,不支持事务操作,由于不需要处理事务记录,其占用内存较小,查询效率较高。每个MyISAM表对应两个磁盘文件:一个是用于存储数据的数据文件,其相对路径为dbname/tablename.MYD;另一个是存储索引的索引文件,其相对路径为dbname/tablename.MYI。
InnoDB引擎
InnoDB是MySQL的默认存储引擎,InnoDB引擎管理事务安全表,使用多版本并发控制和行级锁来提供对事务的支持,除了提供事务支持外,InnoDB还支持外键约束,拥有故障恢复能力。InnoDB设计目标是以最大的效率处理海量数据,其CPU利用率是基于所有磁盘的关系数据库引擎中最高的,因此,InnoDB引擎非常适合支持事务且并发读写频率较高的数据库。
InnoDB和MyISAM对比
InnoDB和MyISAM是MySQL中最常用的两个存储引擎,这两个存储引擎各有优劣,对存储引擎的选择应该根据具体应用来选择,只有这样才能最大限度发挥MySQL数据库的性能优势。
InnoDB和MyISAM区别总结如下:
- MyISAM不支持事务处理和外键约束等高级处理,而InnoDB存储引擎支持
- MyISAM强调的是性能,其执行速度比InnoDB更快,而InnoDB存储引擎则强调的是数据安全性。
- MyISAM支持表级锁定,而InnoDB支持行级锁定。
- MyISAM支持全文索引,而InnoDB不支持。
MySQL高级特性的更多相关文章
- mysql笔记04 MySQL高级特性
MySQL高级特性 1. 分区表:分区表是一种粗粒度的.简易的索引策略,适用于大数据量的过滤场景.最适合的场景是,在没有合适的索引时,对几个分区进行全表扫描,或者是只有一个分区和索引是热点,而且这个分 ...
- 干货:鲜为人用的MySQL高级特性与玩法!
上一篇文章<万字总结:学习MySQL优化原理,这一篇就够了!>文末给大家留有两个开放的问题: 有非常多的程序员在分享时都会抛出这样一个观点:尽可能不要使用存储过程,存储过程非常不容易维护, ...
- 【MySQL高级特性】高性能MySQL第七章
2017-07-25 14:15:43 前言:MYSQL从5.0和5.1版本开始引入了很多高级特性,例如分区.触发器等,这对有其他关系型数据库使用 背景的用户来说可能并不陌生.这些新特性吸引了很多用户 ...
- MySQL高级特性——绑定变量
从MySQL 4.1 版本开始,就支持服务器端的绑定变量,这大大提高了客户端和服务器端数据传输的效率 介绍 当创建一个绑定变量 SQL 时,客户端会向服务器发送一个SQL语句的原型.服务器端收到这个S ...
- MySQL高级特性之分区表
对于用户而言,分区表是一个独立的逻辑表,但是在底层由多个物理子表组成.实现分区的代码实际上是对一组底层表的句柄对象的封装,对分区表的请求都会通过句柄对象转化成对存储引擎的接口调用 意义 MySQL在创 ...
- 高性能mysql 第7章 mysql高级特性之分区表
分区表: 分区表是一个独立的逻辑表,底层通过多个物理表实现. mysql实现分区表的方式是对底层表的封装.这意味着没有全局索引,索引是建立在底层的每个表上的(跟ORACLE不一样). 用到分区表的几种 ...
- 7、mysql高级特性
7.1.分区表 7.1.1 分区表的原理 7.1.2分区表的类型 7.1.3如何使用分区表 7.1.4什么情况下出问题 7.1.5查询优化 使用explain 来分析sql使用的分区表 7.1.6合并 ...
- Redis进阶实践之五Redis的高级特性
一.引言 上一篇文章写了Redis的特征,使用场景,同时也介绍了Redis的基本数据类型,redis的数据类型是操作redis的基础,这个必须好好的掌握.今天我们开始介绍一些Redis的高级特性 ...
- Redis基础用法、高级特性与性能调优以及缓存穿透等分析
一.Redis介绍 Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库.缓存服务或消息服务使用.Redis支持多种数据结构,包括字符串.哈希表.链表.集合.有序集合.位图.Hype ...
随机推荐
- Windows 批处理
1. 引言 在Windows上,经常需要做一些重复的工作.比如在不同的工作场所需要切换不同的ip:比如有时需要对一堆文件按1~n进行重命名:再比如我们需要删除一大堆文件,这些文件名字都差不多, ...
- 生成任意长度的随机数 JS
1.Math.random().toString(36).substr(2); 结果:ywv6cnpkliahj4tep0 2. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- Jquery 选择器注意的问题--记录(五)
1. $("p.intro")-> 所有 class="intro" 的 <p> 元素 $("div#intro .head&quo ...
- Android 自定义View及其在布局文件中的使用示例
前言: 尽管Android已经为我们提供了一套丰富的控件,如:Button,ImageView,TextView,EditText等众多控件,但是,有时候在项目开发过程中,还是需要开发者自定义一些需要 ...
- 浅析MySQL基于ROW格式的二进制日志
上文分析的二进制日志实际上是基于STATEMENT格式的,下面我们来看看基于ROW格式的二进制日志,毕竟,两者对应的binlog事件类型也不一样,同时,很多童鞋反映基于ROW格式的二进制日志无法查到原 ...
- jeffy-vim-v3.0
jeffy-vim-v3.0 修改了配色.
- 【NLP】基于自然语言处理角度谈谈CRF(二)
基于自然语言处理角度谈谈CRF 作者:白宁超 2016年8月2日21:25:35 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...
- Android面试一天一题(1Day)
写在前面 该博客思路源于在简书看到goeasyway博主写的Android面试一天一题系列,无copy之意,仅为让自己总结知识点,成长一点点.先感谢各位大神的无私分享~! 关于题目,大部分则出自And ...
- WebApi跨域问题
1.通过Nuget下载CORS安装包 2.在WebApiConfig.cs文件中注册CORS 3.在全局文件启用CORS支持 4.在控制器上添加头
- 利用Python进行数据分析(12) pandas基础: 数据合并
pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...