phper,PHP学习_PHP技术_PHP网站建设_PHP程序员专注于PHP技术研究及学习

文档归类:数据库

mysql中distinct和group by区别2014-03-03

在数据表中记录了用户验证时使用的书目,现在想取出所有书目,用DISTINCT和group by都取到了我想要的结果,但我发现返回结果排列不同,distinct会按数据存放顺序一条条显示,而group by会做个排序(一般是ASC)。DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别,同样可以通过松散索引扫描或者是紧凑索引扫描来实现。那DISTINCT 和GROUP BY哪个效率更高?DISTINCT操作只需要找出所有不同的值就可以了。而GROUP BY操作还要为其他聚集函数进行准备工作。从这一点上将,GROUP BY操作做的工作应该比DISTINCT所做的工作要多一些。       但实际上,GROUP BY 效率会更高点,为什么呢?对于DISTINCT操作,它会读取了所有记录,而GROUP BY需要读取的记录数量与分组的组数量一样多,也就是说比实际存在的记录数目要少很多。例子  aa表       a          b          ...
此文被围观823 分类: 数据库 标签:  ····

mysql_pconnect() 函数2014-03-03

定义和用法mysql_pconnect() 函数打开一个到 MySQL 服务器的持久连接。 mysql_pconnect() 和 mysql_connect() 非常相似,但有两个主要区别:当连接的时候本函数将先尝试寻找一个在同一个主机上用同样的用户名和密码已经打开的(持久)连接,如果找到,则返回此连接标识而不打开新连接。其次,当脚本执行完毕后到 SQL 服务器的连接不会被关闭,此连接将保持打开以备以后使用(mysql_close() 不会关闭由 mysql_pconnect() 建立的连接)。语法mysql_pconnect(server,user,pwd,clientflag)参数描述server可选。规定要连接的服务器。 可以包括端口号,例如 "hostname:port",或者到本地套接字的路径,例如对于 localhost 的 ":/path/to/socket"。 如果 PHP 指令 mysql.default_host 未定义(默认情况),则默认值是 'localhost:3306'。user可选。用户名。默认值是服务器进程所有者的用户名。pwd可选。密码。默认值是空密码。clientflag可选。client_flags 参数可以是以下常量的组合:MYSQL_CLIENT_SSL - 使用 SSL 加密MYSQL_CLIENT_COMPRESS - 使用压缩协议MYSQL_CLIENT_IGNORE_SPACE - 允许函数名后的间隔MYSQL_CL...
此文被围观1843 分类: 数据库 标签:  ···

MYSQL的索引主要作用是什么!2014-03-03

MYSQL的索引主要作用是什么? 通俗的说索引是用来提高查询效率,不需要通过扫描全部表记录,而直接使用索引快速定位需要查询的值。...
此文被围观1092 分类: 数据库 标签:  ···

PHP+MYSQL数据库关键词模糊匹配查找2014-01-17

这里有讨论贴: http://bbs.phpchina.com/thread-274384-1-1.html //两个字符串相互比对 $str = "好喝的饮料"; $store = "饮料|咖啡|冷饮|"; $arrData= explode('|',$store); $sumData= count($arrData); for($i=0;$i<$sumData;$i++) { $back1 = strchr($arrData[$i],$str ); $back2 = strchr($str ,$arrData[$i]); //任何一个在另外一个存在,就记录 if($back1 != '' || $back2 != '') { $id = "ok"; break; } } echo $id; 实例: //进行所有关键词查找一对一对想到匹配 $key_list = $publish->where("status=0 and keywords<>''")->order("ord asc,id desc")->field("id,keywords")->select(); if ($key_list){ foreach ($key_list as $m=>$n){ $n['keywords'] = str_replace(",",",",$n['keywords']); if (substr_count($n['k...
此文被围观2120 分类: 数据库 标签:  ·····

删除Mysql的MySql-bin.0000X日志文件的方法2013-07-26

mysql-bin.000001、mysql- bin.000002等文件是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志 文件中,还包括每个语句执行的时间,也会记录进去的。 那么这些文件该怎么删除和禁止呢? 禁止方法: vi /etc/my.cnf把里面的 #log-bin=mysql-bin #binlog_format=mixed 注释掉,重启mysql服务即可. 删除方法: 输入命令: /usr/local/mysql/bin/mysql -u root -p 输入密码登陆mysql后,运行命令: reset master; (包括;号) 清空日志文件.再查看Mysql文件的大小,已经小了很多了. -bash-3.2# du -h –max-depth=1 /usr/local/mysql/var du: cannot access `250Cmax-depth=1': No such file or directory 142M /usr/local/mysql/var...
此文被围观1852 分类: 数据库 标签:  ·····

启动mysql报错(starting mysql..manager of pid-file quit without updating...2013-07-26

昨天vps被人给登陆了,今天早上无法使用ssh远程登陆 最后不得不恢复到昨天的快照。 恢复好了,发现mysql启动出现:manager of pid-file quit without updating... 根据网上很多人提供的方法,kill掉所有的mysql进程,重新启动mysql发现一直停留在starting mysql... 最在在discuz论坛上看到这样一个帖子“求救,linux启动后mysql启动不了,启动mysql,一直停在starting mysql....” 其中有一个回复是检测磁盘是否满了, 用:du -sh 一看网站目录,已经19个G了,总共只有20个G,于是删除了一些不要的文件,回头不来看一下mysql已经正常了! 感谢网友们的讨论!...

mysql主键重新排序,id重新排序2013-07-15

经常出现在id的排序东一个西一个,为了清晰有时是需要将主键重新排序的,三步搞定不用删除表!只需要三条语句! Mysql数据库表的自增主键ID号乱了,需要重新排列。 原理:删除原有的自增ID,重新建立新的自增ID。 1,删除原有主键: ALTER TABLE `table_name` DROP `id`; 2,添加新主键字段: ALTER TABLE `table_name` ADD `id` MEDIUMINT( 8 ) NOT NULL FIRST; 3,设置新主键: ALTER TABLE `table_name` MODIFY COLUMN `id` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id);...
此文被围观3436 分类: 数据库 标签:  ····

mysql: command not found解决方法2013-07-11

今天再配置客户的云主机的时候,安装完MYSQL后无法使用mysql -uroot 命令。 在网上查了一下原因: 有时候安装好MySQL程序的时候,直接输入命令mysql或mysqladmin会发现提示命令不存在,这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。 首先得知道mysql命令或mysqladmin命令的完整路径, 比如mysql的路径是:/usr/local/mysql/bin/mysql, 我们则可以这样执行命令: ln -s /usr/local/mysql/bin/mysql /usr/bin...

resource(60) of type (mysql result)2013-06-25

关于$query=mysql_query($query);返回的是什么类型的值的问题的理解 今天泡csdn论坛看见一贴,就是关于$query=mysql_query($query);返回的是什么类型的值的问题,开始以为返回值是数组类型,后来调试了一下才发现不是数组类型,是资源类型,下面是demo代码 [html] <?php require_once("phpmysql.php");//引入数据库mysql操作类phpmysql.php文件 $sql="select * from hello007";//设置sql查询语句 $query=$db->query($sql);//调用phpmysql.php 文件中的方法进行检索操作 var_dump($query);//var_dump()用来打印变量的相关信息 输出结构为resource(4) of type (mysql result) echo is_resource($query);//is_resource()用来判断变量是不是资源类型 输出结果为1 //$row=$db->fetch_array($query);// ?> [/html] 调试的结果如下: resource(4) of type (mysql result) 1 查看php手册,搜索“资源类型”查看资源类型名称为 mysql result 包含mysql_query()的方法,所以这...

mysql查询去除重复数据2013-06-19

今天在做某客户网站时候遇到这样一个问题: 查询出所有发布信息的作者,再通作者信息获取会员等级,根据等级来排序。 首页要查出所有符合要求的信息,并且信息是一个会员只能出现一条,然后再查询会员相关信息!这样就做到了会员只会显示一次的功能! 看一下mysql语句是如何编写的: select a.id from tableA as a left join tableB as b where a.uid=b.id group by a.uid order by a.level desc, a.id desc limit 10; 这样就解决了mysql查询重复出现的问题,主要是group by 这里!其他都是次要的了!...

mysql数据同步错误:Relay log read failure的处理2013-06-18

前一段时间在同事的电脑上配置了数据库同步的功能。 运行了大概半个月后出现了如下错误: 输入的命令是:show slave status\G; [php] Seconds_Behind_Master: NULL Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 1594 Last_SQL_Error: Relay log read failure: Could not parse relay lo event entry. The possible reasons are: the master's binary log is corrupted (y u can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log) a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master...

删除mysql同步信息,干净的清除Slave同步信息2013-05-16

在做mysql主从同步的时候设置了本机为从数据库,但是后来又想删除这个从的同步数据。 下面是网上找到的方法,测试过了可行! 如何干净的清除Slave同步信息【小技巧】  1. mysql> show slave status\G;   2. *************************** 1. row ***************************   3.                Slave_IO_State: Waiting for master to send event   4.                   Master_Host: 192.168.8.22   5.                   Master_User: repl   6.                   Master_Port: 3306   7.                 Connect_Retry: 10   8.               Master_Log_File: mysql-bin.000015   9.           Read_Master_Log_Pos: 107   10.                Relay_Log_File: vm02-relay-bin.000025   11.                 Relay_Log_Pos: 253   12.         Relay_Master_Log_File: mysql-bin...

mysql主从数据库同步错误:[ERROR] Slave: Error 'Duplicate entry2013-05-16

本机昨天刚配置的mysql主从同步,今天重新拷了一下数据就出现错误!在网上看到这个错误的解决方法: 原因: 程序可能在slave上进行了写操作 。(我确定这样操作过。) 也可能是slave机器重起后,事务回滚造成的. 解决方案: mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; mysql> START SLAVE; 然后检查mysql slave的状态 mysql> show slave status\G; 如果确定1062错误码,不会对系统造成影响,可以修改my.cnf。增加如下行,记住重启mysqld服务。 slave-skip-errors = 1062 还有一种解决数据同步的错误方法: 有时候会出现Slave在执行SQL时出错,然后Slave_SQL_Running 变成False,修复办法: 1.stop slave; 2.SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; 3.start slave; 4.show slave status\G; 如果Slave_SQL_Running变为True,那么就ok了,否则重复以上4步,直到变为True为止(因为可能有多个sql语句出错,导致需要忽略多次)。...
此文被围观1913 分类: 数据库 标签:  ·····

本站使用ThinkPHP框架开发读图网主题,目前托管在阿里云,图片由读图网提供. 蜀ICP备12031064号

Copyright © 2011-2017adophper.com All Rights Reserved.