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

MySQL调优-编译篇

安装时的优化
(以下测试数据都来自于mysql的官方网站)
不要用rpm或其他二进制方式安装
要用源代码自己编译
如果是奔腾系统,推荐用pgcc编译器
且使用-O6的编译参数
这样编出来的mysql比用gcc2.95的要快1%
仅用用得着的字符集编译MySql
mysql目前支持多达34种不同的字符集(mysql4.1.11)
但我们常用的也无非就是latin1、gbk、utf8这三种而已
所以一般用编译参数
–with-charset=latin1 –with-extra-charsets=gbk,utf8
就行
用静态方式编译mysqld
用编译参数
–with-mysqld-ldflags=-all-static
在linux下将会提高13%的速度
编译时不要用参数–with-debug或者是–with-debug=all
–with-debug=all致使几乎所有的查询慢20%,有的更甚
仅是–with-debug也会带来15%的查询速度下降
如果编译的时候加了–with-debug=all参数
那么可以用–skip-safemalloc来启动服务器
这样速度影响跟–with-debug差不多
在跑在x86上的linux下用gcc不用frame pointers编译
也就是用参数-fomit-frame-pointer
或者是-fomit-frame-pointer -ffixed-ebp
这样会使mysqld快1-4%
用命令strip mysqld strip一下mysqld的二进制文件将会提高4%的速度
用unix socket来连本机的mysql服务器比用tcp/ip要快7.5%
(unix下,连主机名localhost缺省用的是unix socket)
所以仅从本机来连的mysql服务器
可以用参数–skip-networking来启动(将不监听3306端口)
用tcp/ip来连远程的mysql服务器比连本地的mysql服务器要慢8-11%
慎重使用secure connection(所有数据都会被ssl支持加密)
因为这样会比不加密慢55%
数据库设计时的优化
不要用ISAM类型表
ISAM是mysql最早的表类型,也是非事务性表类型
现在已经被MyISAM表类型所取代
MySQL4.1的版本里虽然还保留的有ISAM表类型
但已经不推荐使用
从Mysql5开始,ISAM表类型已被删掉
Mysql从3.23开始引入MyISAM和HEAP表类型
MyISAM用来提高ISAM表类型性能
HEAP就是所谓内存表
Mysql从3.23.25开始引入MERGE表类型
这种表类型允许把一些MyISAM表当作一个表来操作
MyISAM、HEAP、MERGE这三种表类型都是非事务性表类型
注:HEAP表类型已改名为MEMORY表类型
InnoDB和BDB是所谓的事务性表类型
也就是支持回滚的表类型
大约从Mysql3.23后面的一些版本开始被支持
从Mysql4.0开始被缺省支持
EXAMPLE表类型从Mysql4.1.3开始被引入
他其实没什么用
既不


相关文档:

MySQL数据库之UPDATE更新语句精解

 
一、INSERT和REPLACE
INSERT和REPLACE语句的功能都是向表中插入新的数据。这两条语句的语法类似。它们的主要区别是如何处理重复的数据。
1. INSERT的一般用法
MySQL中的INSERT语句和标准的INSERT不太一样,在标准的SQL语句中,一次插入一条记录的INSERT语句只有一种形式。
INSERT INTO tablename(列名…) ......

linux 下c++及mysql对时间处理的常用技巧

mysql 截取某一个时间(datetime类型)的日期:
方法1:select date(row_name) from table_name where row = row1;
方法2:select left(row_name, 10) from table_name where row = row1;
方法3:select cast(row_name as char[10]) from table_name where row = row1;
取得某个日期的time_t数值:select unix_times ......

Mysql备份还原的一个bug

从mysql备份出来的sql文件进行还原操作时报错,查看错误日志,内容如下:
Error Code: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=50913 DEFAULT CHARSET=gbk' at li ......

Penrose连接Mysql解决方案

 最近一直在进行Penrose连接Mysql的尝试,可总是提示无法连接到Mysql,无论是检查端口是否开启,设置Mysql远程访问权限等都不管用,后来在Penrose的官网找到一个建立样例数据库及设置远程连接的文档,没想到一举成功,痛快啊!
下面就把文档和大家共享一下!(是英文,大家就凑合着看下吧!因为最近搞Penrose太累了, ......

在MySql中添加远程超级用户

1. 使用GRANT语句添加:首先在数据库本机上用ROOT用户
登录MySql(我是用远程控制linux服务器,相当于在服务器本机登录MySql了),然后输入:
mysql>GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
添加一个用户admin并授权通过本地机(localhost)访问,密码“s ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号