Mysqldump建立的转储文件本来是无害的,但它很容易被尝试去编辑。然而,人们应该知道在任何状况下的试图修改这些文件被证实是有危险的。直观地看对这些文件的改动会致使数据库损坏,从而致使系统的退化。为了让你的系统免受任何麻烦,你必须避免编辑MySQL转储文件。mysql
大多数开发者忘记了这一事实,文件系统每每须要一个大的MyISAM块以保证高效运行。许多开发者不知道块大小的设置。.MYI文件存储在myisam_block_size的设置里,这个设置项可用来修改大的块尺寸。MyISAM块大小的默认值是1K,这不是当前大多数系统的恰当设置。所以,开发者应该考虑指定一个与之相适应的值。sql
为避免系统崩溃时数据库损坏delay_key_write默认是关闭的。有人可能会问,若是是这样的话,为何要把它放在首位打开呢?从防止数据库每次写MyISAM文件时刷新密钥文件方面看这是必要的。经过把它打开,开发者能够节省不少时间。参考MySQL官方手册了解你的版本如何把它打开。数据库
建立索引和使用相同的列类型:join(表链接)操做能够在Mysql中被优化。若应用中有许多join操做,能够经过建立相同的列类型上join来优化。建立索引是加速应用的另外一种方法。查询修改有助于你找回指望的查询结果。缓存
即便你只搜索一行MySQL也会查询整个表,所以,建议你当只须要一条结果时将limit设置为1。经过这样作,能够避免系统贯穿搜索整个表,从而能够尽量快找到与你需求相匹配的记录。工具
你确定但愿获得与任何特定查询相关的一些帮助。Explain关键词在这方面是很是有帮助的。它在你寻求查询到底作了什么时提供了具体细节。例如,在复杂join查询前键入Explain关键词你会获得不少有用的资料。性能
MySQL的查询缓存是默认启用的。这主要是由于缓存有助于查询的快速执行,缓存能够在相同的查询屡次运行使用。你在关键字前加入当前日期、CURRDATE等PHP代码使查询缓存它从而启用此功能。优化
各类Bug可使用stack_trace隔离出来。一个空指针足以毁掉一段特定的代码,任何开发人员都知道它有这样的能力。了解使用堆栈跟踪的细节,从而在你的代码里避免bug。ui
枚举类型老是让人感到很是的疑惑。因为字段可能拥有多个可能的值,这些可能的值包括你指定的和null,在编码时将会出现不少问题,你将永远都会获得一个警告说代码不正确。一个简单的解决办法就是设置SQL_MODE。编码
1
2
3
4
5
6
7
8
|
//Start mysqld
with
$–sql-mode=”modes”
//
or
$sql-mode=”modes” (my.ini – Windows / my.cnf – Unix)
//Change
at
runtime, separate multiple modes
with
a comma
$
set
[
GLOBAL
|SESSION] sql_mode=’modes’
//TRADITIONAL
is
equivalent
to
the following modes:
STRICT_TRANS_TABLES, STRICT_ALL_TABLES, NO_ZERO_IN_DATE, ERROR_FOR_DIVISION_BY_ZERO,
and
NO_AUTO_CREATE_USER
|
修改root密码对于某些特定设置是必不可少的,修改命令以下:spa
1
|
$mysqladmin -u root
password
[Type
in
selected
password
]
|
开发者都知道数据库备份的重要性,当系统出现重大故障时可以起到救命的做用。
1
|
$mysqldump –
user
[
user
name
] –
password
=[
password
] [
database
name
] > [dump file]
|
//你也能够用简写"-u","-p"来分别代替"user"和"password"
//将多个数据库导入到一个文件只要在后面添加须要导出数据库的名称:
1
2
|
mysqldump –
user
[
user
name
] –
password
=[
password
]
[
first
database
name
] [
second
database
name
] > [dump file]
|
//许多数据库都提供了顺序备份的功能,要备份全部数据库只须要添加--all-databases参数。若是你不喜欢命令行,从Sourceforge上下载automysqlbackup吧。
PERL脚本MySQL Tuner是另外一个强大的优化数据库性能的工具,它可以帮助你对MySQL配置来进行多处调整和修改。你能够访问该项目的官网来进一步了解它。