易截截图软件、单文件、免安装、纯绿色、仅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上,


相关文档:

Linux下分析Mysql日志的好工具–mysqlsla


从http://hackmysql.com/mysqlsla下载mysqlsla,当前最新版为:2.03
tar zxvf mysqlsla-2.03.tar.gz
cp mysqlsla-2.03/bin/mysqlsla /usr/local/bin
如果提示“Can’t locate DBI.pm”,执行以下命令
yum install perl-DBI perl-DBD-MySQL -y
这时就可以使用mysqlsla了,用法如下
mysqlsla -lt slo ......

快速重置MySQL用户密码

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

mysql 查看索引使用情况

 这是以读为主的线上库
root@read 02:28:07>show status like ‘Handler_read%’; 
+———————–+——-+ 
| Variable_name         | Value | 
+————&m ......

mysql替换数据库中的部分内容

  例子:将cdb_pms表subject字段中的Welcom to替换成 欢迎光临
UPDATE `cdb_pms`
SET `subject` = REPLACE(`subject`, ‘Welcome to’, ‘欢迎光临’)
WHERE INSTR(`subject`,’Welcome to’) < 0 替换cdb_posts表的message字段,将“viewthread.php?tid=3989”替换成“viewthread.php?tid=16546” U ......

设计MySQL数据库的技巧


  你正计划开发一个需要MySQL数据库的PHP网络应用吗?那么你首先需要设计MySQL数据库。本文将教会你一些设计MySQL数据库的技巧。
  就MySQL而言,大多数程序员都不太了解其设计背景,因此当他们尝试创建自己的数据库时,会留下很多漏洞。
  要想为MySQL数据库进行合适的配置,你的网络应用应该是有效且可靠的,因 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号