mysql

MySQL性能优化的最佳21条经验

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。 (continue reading…)


MySQL查询及删除重复记录的方法

查询及删除重复记录的方法
(一)
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1) (continue reading…)

1 Comment more...

MySQL分数排名

方法一、自增列(速度快,但需要重写全表)

方法二、select @rank:=@rank+1 as rank  (continue reading…)

1 Comment more...

sql语法:inner join on, left join on, right join on详细使用方法

inner join(等值连接) 只返回两个表中联结字段相等的行
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录

right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 (continue reading…)


MySQL双机热备份试验

linux服务器lvs负载均衡、双机热备应用中经常用到mysql双机热备,安装和配置过程如下: (continue reading…)


php添加mysql扩展

在安装好apache2+php5之后,现在又想装mysql5。 (continue reading…)


经典SQL语句大全

一、基础

1、说明:创建数据库
CREATE DATABASE database-name

2、说明:删除数据库
drop database dbname

3、说明:备份sql server
— 创建 备份数据的 device (continue reading…)


SQL 高性能查询优化语句

保证在实现功能的基础上,尽量减少对数据库的访问次数;通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担;能够分开的操作尽量分开处理,提高每次的响应速度;在数据窗口使用SQL时,尽量把使用的索引放在选择的首列;算法的结构尽量简单;在查询时,不要过多地使用通配符如 SELECT * FROM T1语句,要用到几列就选择几列如:SELECT COL1,COL2 FROM T1;在可能的情况下尽量限制尽量结果集行数如:SELECT TOP 300 COL1,COL2,COL3 FROM T1,因为某些情况下用户是不需要那么多的数据的。 (continue reading…)


MySQL的InnoDB和MyISAM对比及优化

InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本 的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快, 但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。 (continue reading…)


无限多级分类删除父id后子parent_id自动更新

删除一个分类以后,它的子分类的 parent_id 号就需要改变一下,而不能继续指向这个不存在的分类,因此我希望删除这个分类以后,它的子分类的父分类变为它的父分类。

lock tables `categories` write, `categories` as `c1` write,   `categories` as `c2` write;

update `categories` as `c1`, `categories` as `c2` set `c1`.`parent_id` = `c2`.`parent_id` where `c1`.`parent_id` = `c2`.`cat_id` and `c2`.`cat_id` = $cat_id;

delete from `categories` where `cat_id` = $cat_id;

unlock tables;

这里需要注意的一点是,锁定表的时候,一定要把要操作的表和Mysql表别名都锁定,否则下面的语句会出错.

demo

c1 (new)
uid     parent_id
1         0
2        1
3        2
4        3
res
1        0
3        1
4        3
c2 (old)
uid    parent_id
1        0
2        1
3        2
4        3
where条件查询结果c1为 3   2,c2为2  1,set之后结果就是res里的3  1.

Copyright © 1996-2010 Add Lives. All rights reserved.
iDream theme by Templates Next | Powered by WordPress