易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : mysql

mysql数据库limit查询优化

mysql数据库limit查询优化
 
MYSQL的优化是非常重要的。其他最常用也最需要优化的就是limit。mysql的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。
同样是取10条数据
select * from yanxue8_visit limit 10000,10 和
select * from yanxue8_visit limit 0,10
就不是一个数量级别的。
网上也很多关于limit的五条优化准则,都是翻译自mysql手册,虽然正确但不实用。今天发现一篇文章写了些关于limit优化的,很不错。
文中不是直接使用limit,而是首先获取到offset的id然后直接使用limit size来获取数据。根据他的数据,明显要好于直接使用limit。这里我具体使用数据分两种情况进行测试。(测试环境win2033+p4双核 (3GHZ) +4G内存 mysql 5.0.19)
1、offset比较小的时候。
select * from yanxue8_visit limit 10,10
多次运行,时间保持在0.0004-0.0005之间
Select * from yanxue8_visit Where vid >=(
Select vid from yanxue8_visit Order By vid limit 10,1
) limit 10
多次运行,时间保持在0.0005-0.0006之间,主要是0.0006
结论:偏移offset较小的时候,直接使用limit较优。这个显然是子查询的原因。
2、offset大的 ......

MYSQL和ORACLE的一些操作区别

MYSQL和ORACLE的一些操作区别
有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MYSQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MYSQL迁到ORACLE的需求,应用程序也要相应做一些修改。本人总结出以下几点注意事项,希望对大家有所帮助。
1.自动增长的数据类型处理
MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。
CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;
其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999
INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL
2. 单引号的处理
MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
3. 翻页的SQL语句的处理
MYSQL处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数;PHP里 ......

MYSQL和ORACLE的一些操作区别

MYSQL和ORACLE的一些操作区别
有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MYSQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MYSQL迁到ORACLE的需求,应用程序也要相应做一些修改。本人总结出以下几点注意事项,希望对大家有所帮助。
1.自动增长的数据类型处理
MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。
CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;
其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999
INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL
2. 单引号的处理
MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
3. 翻页的SQL语句的处理
MYSQL处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数;PHP里 ......

MySQL数据库日志

MySQL数据库日志
select日志
slow select日志
变更日志
二进制变更日志(binlog)
告警日志
错误日志。
可以在my.cnf中配置
参数
说明
log
文本select日志,记下所有的MySQL的命令操作,
log-update
文本变更日志
log-bin
这个都知道了,数据库复制的时候必备
binlog_cache_size
临时存放某次事务的SQL语句缓冲长度
max_binlog_cache_szie
最大二进制Cache日志缓冲区尺寸
max_binlog_size
最大的二进制日志尺寸
log-error
严重错误日志
log-warnings
警告级别的日志,低于error
long_query_time
超过多少秒就是慢查询语句
log-queries-not-using-indexes
没有使用索引查询的日志,
log-slow-queri
慢查询,这个一多就要优化了 ......

优化MySQL数据库查询

优化MySQL数据库查询
 
   在优化查询中,数据库应用(如MySQL)即意味着对工具的操作与使用。使用索引、使用EXPLAIN分析查询以及调整MySQL的内部配置可达到优化查询的目的
  任何一位数据库程序员都会有这样的体会:高通信量的数据库驱动程序中,一条糟糕的SQL查询语句可对整个应用程序的运行产生严重的影响,其不仅消耗掉更多的数据库时间,且它将对其他应用组件产生影响。
  如同其它学科,优化查询性能很大程度上决定于开发者的直觉。幸运的是,像MySQL这样的数据库自带有一些协助工具。本文简要讨论诸多工具之三种:使用索引,使用EXPLAIN分析查询以及调整MySQL的内部配置。
  1: 使用索引
  MySQL允许对数据库表进行索引,以此能迅速查找记录,而无需一开始就扫描整个表,由此显著地加快查询速度。每个表最多可以做到16个索引,此外MySQL还支持多列索引及全文检索。
  给表添加一个索引非常简单,只需调用一个CREATE INDEX命令并为索引指定它的域即可。列表A给出了一个例子:
  列表 A
  mysql> CREATE INDEX idx_username ON users(username);
  Query OK, 1 row affected (0.15 sec)
  Records: 1 Duplicates: 0 Warnin ......

MySQL数据库root权限丢失解决方案

MySQL数据库root权限丢失解决方案
一天不小心把ROOT的权限改到最小了(只能登录,什么都做不了),这可急死我了.重装的话太麻烦,而且里面有很多的用户,一个个重新弄不知道到什么时候。
后来我想了一个办法,先把当前服务器的MySQL服务停止,把MySQL DATa目录下的mysql目录改名为mysql_OLD,到另一个服务器下把mysql目录下的/data/mysql目录复制到对应目录,然后启动MySQL服务,使用另一服务器下的root 的帐号登录到PHPmyadmin,进去之后可以看到有全部的操作权限了,但这个数据表中没有当前服务器中的数据库项目和用户信息。这时再找到mysql_OLD数据库,进去之后到user表,找到第一个 root localhost表段,修改:把所有的N改为Y。然后再停止mysql服务,把新复制过来的mysql删除,把mysql_old更名为mysql,再启动服务器后用root登录,发现权限已经全部回来了。 ......

高性能MySQL学习笔记(二)

 前缀索引
(1)如果以多个字段作为索引(a,b,c)作为一个key,在查询时分根据匹配情况是否使用索引,所以,a/ a,b/ a,b,c这样的查询都能使用到,但是b,a/a,c/c,a等不符知前缀匹配就不能使用,所以在写sql时需要注意
(2)对于很长的字符串需要生成key时,可以找出最常使用的字符串的最常见前缀(前N个字条作为key,而不是将全个字符串作为key),这样一方面牺牲少少的精确性(有多余数据,再过滤),另一方面大大提高了检索效率,同时减少了索引的维护开销(存储空间,更新等)
如有200w的url,统计结果如下:
select count(*) as cnt, url from iUrl group by url order by cnt desc limit 10;
+-----+-------------------+
| cnt | url               |
+-----+-------------------+
| 380 | http://www.f.com, |
| 354 | http://www.r.com, |
| 340 | http://www.h.com, |
| 336 | http://www.u.com, |
| 336 | http://www.e.com, |
| 336 | http://www.i.com, |
| 332 | http://www.k.com, |
| 330 | http://www.t.com, |
| 330 | http://www.w.com, |
| 326 | http://www ......
总记录数:2220; 总页数:370; 每页6 条; 首页 上一页 [3] [4] [5] [6] 7 [8] [9] [10] [11] [12]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号