标签:查看 防止 保存 数据库名 模板 它的 相互 alter engines
一、数据库概述1.使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
2.支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
3.为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。
4.支持多线程,充分利用 CPU 资源。
5.优化的 SQL查询算法,有效地提高查询速度。
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
7.提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名。
8.提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。
9.提供用于管理、检查、优化数据库操作的管理工具。
10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
11.支持多种存储引擎。
12.MySQL 是开源的,所以你不需要支付额外的费用。
13.MySQL 使用标准的 SQL数据语言形式。
14.MySQL 对 PHP 有很好的支持,PHP是比较流行的 Web 开发语言。
15.MySQL是可以定制的,采用了 GPL协议,你可以修改源码来开发自己的 MySQL 系统。
16.在线 DDL/更改功能,数据架构支持动态应用程序和开发人员灵活性(5.6新增)
17.复制全局事务标识,可支持自我修复式集群(5.6新增)
18.复制无崩溃从机,可提高可用性(5.6新增)
19.复制多线程从机,可提高性能(5.6新增)
20.3倍更快的性能(5.7 新增)
21.新的优化器(5.7新增)
22.原生JSON支持(5.7新增)
23.多源复制(5.7新增)
24.GIS的空间扩展 (5.7新增)
一种存储机制、根据不同的引擎实现不同的功能,以及不同的性能
InnoDB:事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎。与MyISAM相比有更好的缓存支持,支持表空间、表分区、占用硬件资源较高。
另外,MySQL 的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎 。
mysql> show engines; //查看当前数据库所有支持的存储引擎
mysql> show table status from 库名 where name=‘表名‘\G; //查看指定表的状态信息,可查看表使用的存储引擎
mysql> show create table 表名\G; //查看创建表时的结构,也可查看表创建时指定的存储引擎
vim /etc/my.cnf
[mysqld]
default-storage-engine=引擎
/etc/init.d/mysqld restart
mysql -u root -p
mysql> show engines; //验证是否更改
mysql> alter table 表名 engine=引擎; //将指定表更改为指定的存储引擎
mysql> create table 表名 字段 engine=引擎; //创建使用指定引擎的表
yum -y install perl-DBD-MySQL //安装命令所需的软件包
mysql_convert_table_format --user=用户名 --password=‘密码‘ --socket=/tmp/mysql.sock --type=MyISAM 数据库名 //更改指定库下的所有表的存储引擎;适用于源码
mysql_convert_table_format --user=用户名 --password=‘密码‘ --socket=/var/lib/mysql/mysql.sock --type=MyISAM 数据库名 //更改指定库下的所有表的存储引擎;适用于RPM或YUM
注:mysql_convert_table_format命令只能从InnoDB引擎更改为MyISAM
InnoDB 数据表的索引
唯一索引是不允许其中任何两行具有相同索引值的索引。
当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在 employee 表中职员的姓 (lname) 上创建了唯一索引,则任何两个员工都不能同姓。
简称为主索引,数据库表中一列或列组合(字段)的值唯一标识表中的每一行。该列称为表的主键。
在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。
全文索引是目前实现大数据搜索的关键技术。 能够利用分词技术等多种算法智能分析出文本文字中关键字词的频率及重要性,然后按照一定的算法规则智能地筛选出我们想要的搜索结果。 用于多个列值,允许数据记录出现重复值和空值
create [unique | fulltext | spatial] index 索引名 on 表名(字段)
详解
unique:唯一索引
fulltext:全文索引,InnoDB不支持FULLTEXT类型的索引
spatial:空间索引
案例
mysql> create index hehe_1 on hehe.user(user_name); //user表中user_name字段新建普通索引
mysql> create unique index hehe_2 on hehe.user(user_passwd); //user表中user_passwd字段新建唯一索引
mysql> create index hehe_3 on hehe.user(user_name,user_passwd);
//user表中user_name、user_passwd字段组合为复合索引
show index from 数据库名.表名;
drop index 索引名 on 数据库名.表名;
一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行。换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的。如果在事务的任何操作失败,则整个事务将失败。
mysql> set autocommit=1; //开启事务自动提交,set autocommit=0禁止自动提交
mysql> begin; //事务开始声明
mysql> SQL语句...; //执行的SQL语句
mysql> rollback; //回滚事务
mysql> commit; //提交事务
注:回滚只能回滚当前事务提交之前操纵,所有当前事务提交成功的全部失效
1.给对方转账1000,帐号不对
2.输入转入金额
3.提交确认
begin;
create database hehe;
create table hehe.a(number int,user char(4),menony int(4));
insert into hehe.a values (‘1‘,‘a‘,‘1000‘);
insert into hehe.a values (‘2‘,‘b‘,‘10‘);
commit; //正常提交
事务操作
begin; //开始
update hehe.a set menony=‘0‘ where user=‘a‘;
rollback; //回滚操作
begin;
update hehe.a set menony=‘0‘ where user=‘a‘;
update hehe.a set menony=‘1010‘ where user=‘b‘;
commit; //提交
rollback; //由于系统已经提交,故不能撤销,
标签:查看 防止 保存 数据库名 模板 它的 相互 alter engines
原文地址:http://blog.51cto.com/13770206/2157031