易截截图软件、单文件、免安装、纯绿色、仅160KB

MySQL性能优化

1. 简介

在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响。MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性能非常的差,仅仅是一个玩具数据库。因此在产品中使用MySQL数据库必须进行必要的优化。
优化是一个复杂的任务,本文描述MySQL相关的数据库设计和查询优化,服务器端优化,存储引擎优化。
2. 数据库设计和查询优化

在MySQL
Server性能调优中,首先要考虑的就是Database Schema设计,这一点是非常重要的。一个糟糕的Schema设计即使在性能调优的MySQL
Server上运行,也会表现出很差的性能;和Schema相似,查询语句的设计也会影响MySQL的性能,应该避免写出低效的SQL查询。这一节将详细讨论这两方面的优化。
2.1 Schema Design

Schema的优化取决于将要运行什么样的query,不同的query会有不同的Schema优化方案。2.2节将介绍Query
Design的优化。Schema设计同样受到预期数据集大小的影响。Schema设计时主要考虑:标准化,数据类型,索引。
2.1.1 标准化

标准化是在数据库中组织数据的过程。其中包括,根据设计规则创建表并在这些表间建立关系;通过取消冗余度与不一致相关性,该设计规则可以同时保护数据并提高数据的灵活性。通常数据库标准化是让数据库设计符合某一级别的范式,通常满足第三范式即可。也有第四范式(也称为
Boyce
Codd范式,BCNF))与第五范式存在,但是在实际设计中很少考虑。忽视这些规则可能使得数据库的设计不太完美,但这不应影响功能。
标准化的特点:
1) 所有的“对象”都在它自己的table中,没有冗余。
2) 数据库通常由E-R图生成。
3)
简洁,更新属性通常只需要更新很少的记录。
4) Join操作比较耗时。
5) Select,sort优化措施比较少。
6)
适用于OLTP应用。
非标准化的特点:
1) 在一张表中存储很多数据,数据冗余。
2) 更新数据开销很大,更新一个属性可能会更新很多表,很多记录。
3)
在删除数据是有可能丢失数据。
4) Select,order有很多优化的选择。
5) 适用于DSS应用。
标准化和非标准化都有各自的优缺点,通常在一个数据库设计中可以混合使用,一部分表格标准化,一部分表格保留一些冗余数据:
1) 对OLTP使用标准化,对DSS使用非标准化
2)
使用物化视图。MySQL不直接支持该数据库特性,但是可以用MyISAM表代替。
3)
冗余一些数据在表格中,例如将ref_id和name


相关文档:

MYSQL常用命令列表


MYSQL常用命令列表
1、系统管理
mysql -h主机地址 -u用户名 -p 
连接MYSQL(在mysql/bin)
exit 
退出MYSQL命令
mysqladmin -u用户名 -p旧密码 password新密码 
修改密码(在mysql/bin)
grantselect[insert][,update][,delete]on数据库.*to用户名@localhost("%", 表示任何主机)identifiedby " ......

在access中表中数据导出为文本文件到MySQL的问题?

在access中表中数据导出为文本文件到MySQL的问题?
导出文本文件时候,可以选择字段分隔符,来把每一列隔开 和 文本识别符,来把char型数据括起来
我现在用“,”作为字段分隔符,不使用文本识别符
生成的文本文件如下
1,张三,男,,中国  上海,80501206
2,王五,女,中国  北京 ......

MySQL字符集问题

【转自:http://tdcq.javaeye.com/blog/363955,非常感谢原作者】
这篇文章是网上各种解决mysql中文乱码问题的集大成者,一般可以解决问题。
mysql 创建
数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。
我们遵循的标准是,数 ......

mysql存储过程

1、新建表test create table test1( field1 int not null ) ENGINE=MyISAM DEFAULT CHARSET=gbk; insert into test1(field1) values(1); 2、删除已存在的存储过程 -- 删除储存过程 delimiter // -- 定义结束符号 drop procedure p_test; 3、mysql存储过程定
1、新建表test
create table test1(
field1 int not null
)
......

MySQL的自增字段


1.关键字 
auto_increment
2.自增用法 
例: 
CREATE TABLE animals ( id mediumint not null auto_increment, 
name char(30) not null, 
primary key (id));
3.关于自增
Q:怎么获得当前的自增的最大值?
A:select @@identity
Q:怎么获得table的当前自增最大值? 
A:select max(i ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号