MySQL数据库使用与编程优化
2016-08-02 15:17
267 查看
概述:
1.使用MySQL不需要申请表空间,但需要一个schema。
2.schema有时候也可以叫做database,库,数据库。是MySQL中组织和管理表的一个结构,相当于一个文件夹。
3.MySQL数据库安装后默认包含4个schema,test是用户可以操作的schema,其余三个是系统使用,用户不能操作。
基本操作:
1.创建数据库:create database 数据库表名;
create table 表名(字段1,...字段n,[表级约束]) [Type=表类型];
格式为:字段名 字段类型 [字段约束]
表类型:可以写engine=Innodb|MyISAM等。有默认值,没有特殊要求不需要写。
2.查看数据库:show databases;
3.选择数据库:use 数据库名;
4.删除数据库:drop database 数据库名;
5.查看表结构:desc tablename;
6.复制表:create table 新表名 like 源表名;
7.删除表:drop table 表名1[,表名2,...]
8.修改表:alter table 表名 更改动作1[,更改动作2,...]
(1)增加表中字段
alter table student add addr(25);
(2)更改表字段名和字段类型
alter table student changes add text
(3)删除字段
alter table student drop addr
(4)更改名称
alter table student rename to stu;
9.使用limit n, m分页。
10.事务控制
(1)开始事务:start transaction | begin
(2)提交事务:commit
(3)回滚事务:rollback
(4)设置事务提交方式:set autocommit =0 |1 ;
默认是自动提交(1).
表类型(存储引擎):
1.MySQL支持多种存储引擎,其中InnoDB和BDB提供事务安全表。
2.InnoDB是MySQL默认的存储引擎,支持事务,行锁设计,支持外键,独立的ibd文件存储表结构和数据,支持全文索引。对于InnoDB数据表,内部的行存储格式没有区分固定长度和可变长度列,因此在本质上,使用固定长度的char列不一定比使用可变长度varchar列简单。因而,主要的性因素是数据行使用存储总量。则于char平均占用的空间多于varchar,因此使用varchar来最小化需要处理的存储总量和磁盘IO是比较好的。
3.MyISAM存储引擎,不支持事务,表锁设计,不支持外键,支持全文索引,使用数据压缩和索引优化。对于MyISAM数据表,最好使用固定长度的数据列代替可变长度的数据列。
MySQL和Oracle数据类型对比:
SQL语句优化:
1.常数表优先,字典表或小表其次,大表最后。
2.常数表是指空表或只有1行的表。
3.字典表有小数量的行。
4.使用like时,%不要放在首字符位置。
5.InnoDB表避免使用count(*)操作,计数统计实时要求罗强可以使用memcache或者redis,非实时统计时可以使用单独统计表,定时更新。
Oracle和MySQL的一些差异:
1.MySQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。Oracle没有自动增长的数据类型。
2.MySQL里可以用单引号、比引号包起字符串,Oracle里只可以用单引号包起字符串。
3.MySQL的非空字段也有空的内容,Oracle里定义了非空字段就不容许有空的内容。
1.使用MySQL不需要申请表空间,但需要一个schema。
2.schema有时候也可以叫做database,库,数据库。是MySQL中组织和管理表的一个结构,相当于一个文件夹。
3.MySQL数据库安装后默认包含4个schema,test是用户可以操作的schema,其余三个是系统使用,用户不能操作。
基本操作:
1.创建数据库:create database 数据库表名;
create table 表名(字段1,...字段n,[表级约束]) [Type=表类型];
格式为:字段名 字段类型 [字段约束]
表类型:可以写engine=Innodb|MyISAM等。有默认值,没有特殊要求不需要写。
2.查看数据库:show databases;
3.选择数据库:use 数据库名;
4.删除数据库:drop database 数据库名;
5.查看表结构:desc tablename;
6.复制表:create table 新表名 like 源表名;
7.删除表:drop table 表名1[,表名2,...]
8.修改表:alter table 表名 更改动作1[,更改动作2,...]
(1)增加表中字段
alter table student add addr(25);
(2)更改表字段名和字段类型
alter table student changes add text
(3)删除字段
alter table student drop addr
(4)更改名称
alter table student rename to stu;
9.使用limit n, m分页。
10.事务控制
(1)开始事务:start transaction | begin
(2)提交事务:commit
(3)回滚事务:rollback
(4)设置事务提交方式:set autocommit =0 |1 ;
默认是自动提交(1).
表类型(存储引擎):
1.MySQL支持多种存储引擎,其中InnoDB和BDB提供事务安全表。
2.InnoDB是MySQL默认的存储引擎,支持事务,行锁设计,支持外键,独立的ibd文件存储表结构和数据,支持全文索引。对于InnoDB数据表,内部的行存储格式没有区分固定长度和可变长度列,因此在本质上,使用固定长度的char列不一定比使用可变长度varchar列简单。因而,主要的性因素是数据行使用存储总量。则于char平均占用的空间多于varchar,因此使用varchar来最小化需要处理的存储总量和磁盘IO是比较好的。
3.MyISAM存储引擎,不支持事务,表锁设计,不支持外键,支持全文索引,使用数据压缩和索引优化。对于MyISAM数据表,最好使用固定长度的数据列代替可变长度的数据列。
MySQL和Oracle数据类型对比:
SQL语句优化:
1.常数表优先,字典表或小表其次,大表最后。
2.常数表是指空表或只有1行的表。
3.字典表有小数量的行。
4.使用like时,%不要放在首字符位置。
5.InnoDB表避免使用count(*)操作,计数统计实时要求罗强可以使用memcache或者redis,非实时统计时可以使用单独统计表,定时更新。
Oracle和MySQL的一些差异:
1.MySQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。Oracle没有自动增长的数据类型。
2.MySQL里可以用单引号、比引号包起字符串,Oracle里只可以用单引号包起字符串。
3.MySQL的非空字段也有空的内容,Oracle里定义了非空字段就不容许有空的内容。
相关文章推荐
- Linux系统高负载下彻底优化MySQL数据库_Linux编程
- java笔记--使用线程池优化多线程编程
- 编程优化之——序列的使用!
- 并发编程之线程池的使用及扩展和优化
- PHP数据库编程④使用php的mysqli扩展库操作mysql数据库
- 在C++ Builder中使用OpenGL编程的优化框架
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- MySql数据库细节使用规范详细解读胜过千行代码优化
- 使用C语言编程的3个优化等级
- 使用MySQLTuner脚本检测、优化MySQL数据库
- 我呢,很喜欢编程,曾经使用过mysql数据库
- Android编程使用缓存优化ListView的方法
- mysql数据库优化 pt-query-digest使用
- 使用C语言调用mysql数据库编程实战以及技巧
- MySQL数据库优化技术之索引使用技巧总结
- 使用c/c++编程插入MySQL数据库效率底下的解决方案
- php笔记08:数据库编程---使用php的MySQL扩展库操作MySQL数据库
- C++ —— 使用模板元编程来进行递归运算的优化
- Java编程使用C3P0连接Mysql数据库(十二)
- 使用MYSQL数据库实现编程----第二章第三章课堂知识小总结