星辉互联

您的当前位置:网站首页 » 帮助中心» 域名相关

MYSQL使用指南

来源:星辉互联类型:帮助文件 更新:2008-1-21 点击:5430


   1. 批量载入比单行载入的效率高,因为在每条记录被载入后,键缓存(key cache)不用刷新(flush);
   2. 没有索引的数据表的载入速度比有索引的要快一些。
   3. 较短的SQL语句比较长的SQL语句快,因为它们所涉及到服务器端分析过程较少,同时通过网络把它们从客户端发送到服务器上的速度也更快。
   4. LOAD DATA(所有形式的)比INSERT效率高,因为它是批量载入数据行的。

查看可优化变量
mysqld --verbose --help
查看使用情况
MySQL系统变量的值 
bin> SHOW VARIABLES;
bin> SHOW VARIABLES like ‘key_%’;
mysqladmin variables extended-status -h127.0.0.1 -uroot -P3306 -p status
提供服务器的状态信息 
bin> show status;  
bin> SHOW STATUS LIKE 'key_read%';
bin> SHOW STATUS LIKE 'Qcache_%';
mysqladmin extended-status -h127.0.0.1 -uroot -P3306 -p status

a). myisamchk -a ..\data\asdb\* 更新一下表中的键码分布统计。
b) key_buffer_size只对MyISAM表起作用,指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。64M在 256M机器上很正常,可用内存的 30-40%,合理的值取决于索引大小、数据量以及负载。
query_cache_size:从4.0.1开始,MySQL提供了查询缓冲机制。使用查询缓冲,MySQL将SELECT语句和查询结果存放在缓冲区中,今后对于同样的SELECT语句(区分大小写),将直接从缓冲区中读取结果。其值可为:并发数*表空间*记录数*缓冲数=8K表空间*20条*10用户*10个=16M)
table_cache。table_cache指定表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。打开一个表的开销可能很大。它需要用到操作系统的资源以及内存。如果你有200多个表的话,那么设置为 1024 也许比较合适(每个线程都需要打开表),对于有1G内存的机器,推荐值是128-256。
e) max_connections。并发连接数目最大,100 超过这个值就会自动恢复,出了问题能自动解决 
f) thread_cache。可以复用的保存中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。它的目的是在通常的操作中无需创建新线程,通常至少设置为 16。
g) sort_buffer_size   每个线程的排序缓存堆大小,该参数对应的分配内存是每连接独占,如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 2 = 200MB
h) read_buffer_size 每个线程的顺序扫描缓存堆大小,每连接独占
i) join_buffer_size 联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享!
i) skip-external-locking 避免MySQL的外部锁定,减少出错几率增强稳定性,比如文件锁。
j) skip-name-resolve 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!
k) back_log = 100 指定MySQL可能的连接数量。当MySQL主线程在很短的时间内接收到非常多的连接请求,该参数生效,主线程花费很短的时间检查连接并且启动一个新线程。
l) skip-networking 开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接! 
m) interactive_timeout 服务器在关闭它前在一个交互连接上等待行动的豪秒数。一个交互的客户被定义为对 mysql_real_connect()使用 CLIENT_INTERACTIVE 选项的客户。 
n) wait_timeout 服务器在关闭它之前在一个连接上等待行动的豪秒数

MySql问题
客户端连不上服务器
可能服务没有启动
客户端连不上远程服务器
可能该用户没有在远程连接的权限,赋权即可

由于临时断电,或使用kill -9中止mysql服务进程,或者是mysql正在高速运转时进行强制备份操作时等,所有的这些都可能会毁坏mysql的数据文件。留下错误的或不一致的状态。
myisamchk程序对用来检查和修改mysql数据文件,myisamchk会误以为发生了错误,并会试图进行修复--这将导致mysql服务的崩溃!为避免这种情况的发生:
1. 禁止强杀mysql进程
2. 禁止mysql启动时拷贝数据文件
一旦出现数据破坏,可以:
1. 检查某表 d:\mysql5\bin\> myisamchk ..\data\asdb\k_key
2. 检查所有表 myisamchk ..\data\asdb\*.myi
3. 检查一旦出现错误提示table is marked as crashed,要恢复
恢复步骤
a. 关闭mysql服务
b. 备份损坏的文件表和数据,位于在data目录下
c. 执行如下命令:myisamchk --recover --quick ..\data\asdb\k_key.myi
d. 如果不行:myisamchk --safe-recover   ..\data\asdb\k_key.myi

 

我们很乐意帮助您!请联系在线客服或致电我们。7×24小时客服热线: 0833-2438125