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又遇到问题了,这次是关于乱码的...
其实我也比较了解编码的问题,也知道乱码产生的原理,而且网上对mysql的乱码问题也有比较多的解答,
但是今天我遇到的这个乱码却比较奇怪,在when语句中产生了奇怪的乱码。
create table my_table(id int, name varchar(50), born DateTime);
insert into my_table val ......
取mysql表和字段注释的语句
1、取字段注释
Select COLUMN_NAME 列名, DATA_TYPE 字段类型, COLUMN_COMMENT 字段注释
from INFORMATION_SCHEMA.COLUMNS
Where table_name = 'companies'##表名
AND table_schema = 'testhuicard'##数据库名
AND column_name LIKE 'c_name'##字段名
2、取得表注释
Select tab ......
http://linux.chinaitlab.com/MYSQL/524755_2.html
http://bbs.chinaunix.net/archiver/?tid-809159.html
在Apache, PHP,
MySQL的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分。对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接
影响到论坛的速度和承载量!同时,MySQL也是优化难度最大 ......
MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制。
MYSQL复制的几种模式
MySQL 5.1 中,在复制方面的改进就是引进了新的复制技术:基于行的复制。
简言之,这种新技术就是关注表中发生变化的记录,而非以前的照抄 binlog 模式。
从 MySQL 5.1.12 开始,可以用以下三种模式来实现:
-- 基于 ......
1. 使用GRANT语句添加:首先在数据库本机上用ROOT用户
登录MySql(我是用远程控制linux服务器,相当于在服务器本机登录MySql了),然后输入:
mysql>GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
添加一个用户admin并授权通过本地机(localhost)访问,密码“s ......