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

mysql数据库优化

 优化mysql首先应该多用explain select ,show variables, show status ,show processlist这些工具。
在写sql的时候,在大表上不做group by 操作。
对于索引:
1.不要索引你不想要的东西。
2.mysql能使用索引的情况:> ,>=, =, <,<= ,if null 以及between
3.mysql不使用索引的情况:如果mysql能估计出它可能比扫描整张表还快的时候,就不使用索引。
对于使用explain:使用explain 分析你认为慢的语句:
EXPLAIN列的解释:
table 显示这一行的数据是关于哪张表的
type  这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、index和ALL
possible_keys 显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句
key 实际使用的索引。如果为NULL,则没有使用索引。很少的情况下,MYSQL会选择优化不足的索引。这种情况下,可以在SELECT语句中使用USE INDEX(indexname)来强制使用一个索引或者用IGNORE INDEX(indexname)来强制MYSQL忽略索引
key_len 使用的索引的长度。在不损失精确性的情况下,长度越短越好
ref 显示索引的哪一列被使用了,如果可能的话,是一个常数
rows MYSQL认为必须检查的用来返回请求数据的行数
Extra 关于MYSQL如何解析查询的额外信息。将在表4.3中讨论,但这里可以看到的坏的例子是Using temporary和Using filesort,意思MYSQL根本不能使用索引,结果是检索会很慢
extra 列返回的描述的意义
Distinct 一旦MYSQL找到了与行相联合匹配的行,就不再搜索了
Not exists MYSQL优化了LEFT JOIN,一旦它找到了匹配LEFT JOIN标准的行,就不再搜索了
Range checked for each
Record(index map:#)没有找到理想的索引,因此对于从前面表中来的每一个行组合,MYSQL检查使用哪个索引,并用它来从表中返回行。这是使用索引的最慢的连接之一
Using filesort 看到这个的时候,查询就需要优化了。MYSQL需要进行额外的步骤来发现如何对返回的行排序。它根据连接类型以及存储排序键值和匹配条件的全部行的行指针来排序全部行
Using index 列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发生在对表的全部的请求列都是同一个索引的部分的时候
Using temporary 看到这个的时候,查询需要优化了。这里,MYSQL需要创建一个临时表来存储结果,这通常发生在对不同的列集进行ORDER BY上,


相关文档:

php 通过网页的方式备份和还原mysql数据库

 最近上网找了一些关于备份mysql数据库的方法,主要就是通过网页的方法导出数据库的sql 文件,找到个不错的代码,但发现中文导出会乱码,于是稍微修改了一下,下面是备份的代码
view plaincopy to clipboardprint?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml ......

使用MYSQL数据库插入图片时关于数据库字符集的错误

 在使用JDBC操作数据库 在向数据库中插入图片时,程序老是抛异常
原来的MYSQL字符集是GBK  但是这种字符集虽然支持中文 但是当插入图片等二进制数据时 会出现错误
解决方法:
将数据库字符集更改为gb2312或utf-8
1.在MYSQL DOS界面中输入  show  variables  like "%char%";
+---- ......

快速重置MySQL用户密码

 
1、停止正在运行的MySQL进程
    
Linux下,运行 killall -TERM mysqld
     Windows下,如果写成服务的可以运行:net stop mysql,如未加载为服务,可直接在任务管  理器中进行关闭。
2、以安全模式启动MySQL
    
Linux下,运行 mysqld_sa ......

如何重启MySQL服务

 RedHat Linux (Fedora Core/Cent OS)
1.启动:/etc/init.d/mysqld start
2.停止:/etc/init.d/mysqld stop
3.重启:/etc/init.d/mysqld restart
Debian / Ubuntu Linux
1.启动:/etc/init.d/mysql start
2.停止:/etc/init.d/mysql stop
3.重启:/etc/init.d/mysql restart
Windows
1.点击“开始&rdq ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号