
数据库
文章平均质量分 71
enough_br
这个作者很懒,什么都没留下…
展开
-
mysql慢日志记录
设置了mysql慢日志记录本身性能影响不大,mysql只是记录查询时间超过设定时间的查询语句而已。原则上长时间的查询越少越好,建议逐步降低秒数来优化SQL查询,例如先开到5秒,将5秒以上的慢查询找出并优化掉,然后再降低到4秒,以此类推. 1秒之内的应该都不必优化了原创 2011-07-19 10:51:55 · 410 阅读 · 0 评论 -
Web应用中的轻量级消息队列
Web应用中为什么会需要消息队列?主要原因是由于在高并发环境下,由于来不及同步处理,请求往往会发生堵塞,比如说,大量的insert,update 之类的请求同时到达mysql,直接导致无数的行锁表锁,甚至最后请求会堆积过多,从而触发too many connections错误。通过使用消息队列,我们可以异步处理请求,从而缓解系统的压力。在Web2.0的时代,高并发的情况越来越常见,从而使消息队列有转载 2012-07-26 14:24:58 · 880 阅读 · 0 评论 -
备忘日志【四】
一、[2012-05-16] PHP的dubugdebug_print_backtrace() + var_dump() + die();这个3个函数是debug无敌组合 二、[2012-05-18] Linux用源码安装的程序如何卸载?*.tar.gz/*.tgz、*.bz2形式的源代码软件包 安装:tar zxvf *.tar.gz 或 tar原创 2012-05-16 16:20:04 · 565 阅读 · 0 评论 -
Left join优化规则的研究
对于left join的优化,是应用开发人员、数据库内核开发人员关注的问题之一。我当初对left join进行分析归纳,后来阅读mysql时发现sql_select.cpp文件中的simplify_joins()函数的实现方法也是这样的,大家可以参考该函数。 【IT专家网独家】一、概述 对于left join的优化,是应用开发人员、数据库内核开发人员关注的问题之一。 应用转载 2012-09-21 11:23:59 · 648 阅读 · 0 评论 -
HandlerSocket!
目前使用MySQL的网站,多半同时使用Memcache作为键值缓存。虽然这样的架构极其流行,有众多成功的案例,但过于依赖Memcache,无形中让Memcache成为故障的根源:Memcache数据一致性的问题:当MySQL数据变化后,如果不能及时有效的清理掉过期的数据,就会造成数据不一致。这在强调即时性的Web2.0时代,不可取。Memcache崩溃后的雪崩效应:作为缓存的Memcach转载 2012-10-24 15:09:59 · 443 阅读 · 0 评论 -
HandlerSocket使用经验
HandlerSocket 是一个日本人开发的mysql的插件,目的是用HandlerSocket把mysql改造成nosql的数据库。官方称qps可以到达70w/s+。HandlerSocket其实是绕过mysql的sql解析部分,直接读写innodb,然后对外维护一个epoll的连接,通过简单的文本协议与客户端通讯。他对外提供的服务也是简单的k-v增删改。mysql的sql解析是非常耗时的转载 2012-10-24 15:13:28 · 1156 阅读 · 0 评论 -
Linux下查看并发连接数和连接状态
Linux下查看apache、nginx的进程数,并发数要想在Linux系统下查看Apache的负载情况,最简单有效的方法就是查看Apache Server Status,在没有开启Apache Server Status的情况下,或安装的是其他的Web Server,比如Nginx的时候,可以使用下面的命令查看。 #ps -ef|grep httpd|wc -l 1388转载 2013-02-03 19:06:58 · 1099 阅读 · 0 评论 -
解决WEB集群session同步的方案,Redis内存缓存
转自:http://www.sziwap.com/archives/75.html最近公司WEB服务器换集群方式,集群所带来直接的问题就是session共享。如果用PHP自带的session处理方式,又要达到一致性,我已知的解决方案是NFS方法,不过担心磁盘性能以及session的处理机制,决定放弃这种方法,最后决定用内存缓存服务器来实现。公司目前主要缓存的使用已经全部转至Re转载 2013-02-05 16:35:41 · 1787 阅读 · 0 评论 -
web集群时session同步的3种方法
在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就根据这种情况给出三种不同的方法来解决这个问题:一,利用数据库同步session在做多服务器session同步时我没有用这种方法,如果非要用这种方法的话,我想转载 2013-02-05 16:05:05 · 427 阅读 · 0 评论 -
session保存到redis
/** * Store PHP sessions in redis. * * Depends on {@link http://github.com/nrk/predis/ Predis} * * @author Mickael Magniez * * @version 0.1 * * @license http://www.gnu.org/licenses/lgpl-转载 2013-02-06 17:42:03 · 1094 阅读 · 0 评论 -
mysql与mysqli的区别 永久连接pconnect
转自:http://blog.80hou.us/30/mysql与mysqli的区别: mysqli连接是永久连接,而mysql是非永久连接。mysql连接:每当第二次使用的时候,都会重新打开一个新的进程。mysqli连接:一直都只使用同一个进程。好处:这样就可以很大程度的减轻服务器端压力。 当然,如果mysql也需要永久连接的话,就可以转载 2013-04-08 18:05:31 · 5643 阅读 · 0 评论 -
Redis作者谈Redis应用场景
转自:http://blog.youkuaiyun.com/xymyeah/article/details/6578422毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。希望你喜欢这个比喻。下面是一篇新鲜出炉的文章,转载 2013-04-25 09:14:35 · 516 阅读 · 0 评论 -
优化临时表使用,SQL语句性能提升100倍
【问题现象】线上mysql数据库爆出一个慢查询,DBA观察发现,查询时服务器IO飙升,IO占用率达到100%, 执行时间长达7s左右。SQL语句如下:SELECT DISTINCT g.*, cp.name AS cp_name, c.name AS category_name, t.name AS type_name FROMgm_game g LEFT JOIN gm_cp转载 2013-11-14 13:13:28 · 854 阅读 · 0 评论 -
mysql 分组查询数据时,如何获得用于分页的总记录数?
主要是想查询符合条件的记录总数,查询数据使用的sql为:SELECT SUBSTRING_INDEX(`url`,'/',3) AS host,COUNT(*) AS count FROM `tab` WHERE `type`=4 GROUP BY host HAVING(count >= 5) ORDER BY count desc LIMIT 0,10以转载 2014-06-23 16:34:03 · 4320 阅读 · 0 评论 -
mysql怎样查询当月的定单数?
1.select * from order where paytime>=UNIX_TIMESTAMP('2011-3-1') and paytime2.查询出当月字段:SELECT *FROM `table`WHERE month( 时间字段) = month( now( )原创 2011-07-19 11:02:34 · 950 阅读 · 0 评论 -
Mysql索引优化浅谈
1,创建索引对于查询占主要的应用来说,索引显得尤为重要。很多时候性能问题很简单的就是因为我们忘了添加索引而造成的,或者说没有添加更为有效的索引导致。如果不加索引的话,那么查找任何哪怕只是一条特定的数据都会进行一次全表扫描,如果一张表的数据量很大而符合条件的结果又很少,那么不加索引会引起致命的性能下 降。但是也不是什么情况都非得建索引不可,比如性别可能就只有两个值,建索引不仅没什么优势,还会影响转载 2014-05-30 17:29:18 · 632 阅读 · 0 评论 -
备忘日志【七】
1、 【2015-04-29】system、exec、passthru这些执行外部程序的函数。任何程序使用此函数启动,为了能保持在后台运行,此程序必须将输出重定向到文件或其它输出流。否则会导致 PHP 挂起,直至程序执行结束。程序在后台执行:exec('/usr/local/php/bin/php /home/web/public/index.php crontab exprot原创 2015-04-30 15:54:24 · 514 阅读 · 0 评论 -
MySQL锁表lock tables和unlock tables
如果你的mysql用的是myIsam存储引擎,就可以通过手动锁表来保证读得数据是可靠的。如果用的是InnoDB就不需要这么做。lock tables 命令是为当前线程锁定表.这里有2种类型的锁定,一种是读锁定,用命令 lock tables tablename read;另外一种是写锁定,用命令lock tables tablename write.下边分别介绍:1. lock tab转载 2012-07-12 10:17:30 · 4122 阅读 · 1 评论 -
备忘日志【三】
1、[2012-04-16] thinksaas中插件钩子函数//针对app各个的插件部分,修改自Emlog/*** 该函数在插件中调用,挂载插件函数到预留的钩子上** @param string $hook* @param string $actionFunc* @return boolearn*/function addAction($hook, $action原创 2012-04-16 20:46:19 · 1087 阅读 · 0 评论 -
mysql复合索引优化
很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询语句中字段的顺序不符。看下面的例子:假设有一张订单表(orders),包含order_id和product_id二个字段。一共有31条数据。符合下面语句的数据有5条。执行下面的sql语句:select produc转载 2012-04-16 23:10:52 · 1574 阅读 · 0 评论 -
怎样用SQL语句算出每小时IP的访问数
select time ,evg(timecount ) from(select time,count(*) as timecount from(select ip,format('yyyy-mm-dd hh',time) as time from table) group b原创 2011-07-19 10:35:22 · 570 阅读 · 0 评论 -
提高MySQL 数据库性能
本文探讨了提高MySQL 数据库性能的思路,并从8个方面给出了具体的解决方法。 1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段转载 2011-08-09 13:27:29 · 397 阅读 · 0 评论 -
我想先按CE_time排序再按CE_user分组
我想先按CE_time排序再按CE_user分组select a.* from (select b.* from tm_case_expert b order by CE_time) a group by CE_user原创 2011-09-08 13:17:04 · 409 阅读 · 0 评论 -
MySQL性能优化的最佳21条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲转载 2011-08-20 16:42:24 · 352 阅读 · 0 评论 -
mysql慢查询日志设置
其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上如下代码:long_query_time = 2slow_query_log = 1slow_query_log_file = /var/log/mysql-slow-query.log或:log-slow-原创 2011-11-07 16:32:55 · 568 阅读 · 0 评论 -
一个专爆漏洞的网站
一个专爆漏洞的网站http://www.wooyun.org/index.php原创 2011-12-27 16:14:28 · 822 阅读 · 0 评论 -
简单的PHP的任务队列
来自向东:http://www.xiangdong.org/blog/post/1743/文章太长,不作过多介绍,反正,文章的头部就说明了大概的意思。。。原文如下:写了一个简单的队列任务处理。多进程任务,异步任务可能会用到这个(主要是命令行应用)比如,任务的某个一个环节速度十分不稳定,可能执行几秒,也可能执行几分钟,我就可以把那个环节包括前面的部分扔进队列,多跑几个进程,同转载 2012-02-04 15:57:54 · 2111 阅读 · 0 评论 -
PHP 页面编码声明与用header或meta实现PHP页面编码的区别
php的header来定义一个php页面为utf编码或GBK编码 php页面为utf编码 header("Content-type: text/html; charset=utf-8"); php页面为gbk编码 header("Content-type: text/html; charset=gb2312"); php页面为big5编码 header("Con转载 2012-01-03 15:48:03 · 374 阅读 · 0 评论 -
mysql-性能,命令-explain,show processlist,show
◆Mysql Explain 详解一.语法explain 例如: explain select * from t3 where id=3952602;二.explain输出解释+----+-------------+-------+-------+-------------------+---------+---------+--转载 2012-02-08 15:27:11 · 416 阅读 · 0 评论 -
php-通过数据库实现队列
什么是队列,是先进先出的线性表,在具体应用中通常用链表或者数组来实现,队列只允许在后端进行插入操作,在前端进行删除操作。什么情况下会用了队列呢,并发请求又要保证事务的完整性的时候就会用到队列,当然不排除使用其它更好的方法,知道的不仿说说看。队列还可以用于减轻数据库服务器压力,我们可以将不是即时数据放入到队列中,在数据库空闲的时候或者间隔一段时间后执行。比如访问计数器,没有必要即时的转载 2012-02-20 21:26:20 · 1883 阅读 · 0 评论 -
mysql配置开启慢查询和查看慢查询的方法
1,配置开启Linux:在mysql配置文件my.cnf中增加log-slow-queries=/var/lib/mysql/slowquery.log (指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log)long_query_time=2 (记录超过的时间,默认为10s)log-queries-not-using-in转载 2012-03-21 23:06:08 · 545 阅读 · 0 评论 -
PHP+memcache安装使用例子
memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序,以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,客户端可以由各种语言编写,目前已知的客户端 API包括 Perl/PHP/Python/Ruby/Java/C#/C 等等。PHP 等客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,每个转载 2012-04-10 17:11:31 · 638 阅读 · 0 评论 -
mysql怎样通过binlog恢复被恶意删除的数据?
最近出现很多用户无法登陆,账号被删除等现象,查看数据库发现很多用户账号被恶意删除了,怎样知道哪些用户被删除呢?那就要查看mysql的操作日志了。转载:1. 以前我错误的认为mysql的日志可以恢复到任何时间的状态,其实并不是这样,这个恢复是有前提的,就是你至少得有一个从日志记录开始后的数据库备份,通过日志恢复数据库实际上只是一个对以前操作的回放过程而已,不用想得太复杂,既然是回放你原创 2012-01-10 16:01:47 · 762 阅读 · 0 评论 -
Mongodb for PHP教程之数据操作
Mongodb的常用操作参看手册,php官方的http://us2.php.net/manual/en/mongo.manual.php 也可以参看mongodb官方的教程数据库连接⑴默认格式$m = new Mongo(); //这里采用默认连接本机的27017端口,当然你也可以连接远程主机如 192转载 2012-04-12 22:45:14 · 581 阅读 · 0 评论 -
MongoDB基本管理命令
MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由一组列标识的实体的集合对应于关系数据库表中的行。下面通过熟悉MongoDB的基本管理命令,来了解MongoDB提供的DBMS的基本功能和行为。MongoDB命令帮助系统转载 2012-04-12 22:42:50 · 538 阅读 · 0 评论 -
备忘日志【二】
1、[2012-03-18] trim函数不单可以去空格,也可以去掉指定字符串。trim(PHP 4, PHP 5)trim — Strip whitespace (or other characters) from the beginning and end of a stringstring trim ( string $str [, string $charl原创 2012-03-18 15:12:15 · 504 阅读 · 0 评论 -
mysql索引需要了解的几个注意
http://thephper.com/?p=142板子之前做过2年web开发培训(入门?),获得挺多学生好评,这是蛮有成就感的一件事,准备花点时间根据当时的一些备课内容整理出一系列文章出来,希望能给更多人带来帮助,这是系列文章的第一篇注:科普文章一篇,大牛绕道索引是做什么的?索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然转载 2015-05-29 17:57:30 · 611 阅读 · 0 评论