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

文档归类:数据库

MySQL 字段类型参考2014-03-31

字段类型: TINYINT[(M)] [UNSIGNED] [ZEROFILL] 一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。SMALLINT[(M)] [UNSIGNED] [ZEROFILL] 一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] 一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。INT[(M)] [UNSIGNED] [ZEROFILL] 一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。INTEGER[(M)] [UNSIGNED] [ZEROFILL] 这是INT的一个同义词。BIGINT[(M)] [UNSIGNED] [ZEROFILL] 一个大整数。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615。FLOAT[(M,D)] [ZEROFILL] 一个小(单精密)浮点数字。不能无符号。允许的值是-3.402823466E+38到-1.175494351E-38,0 和 1.175494351E-38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24 的一个 参数表示一个单精密浮点数字。DOUB...
此文被围观1922 分类: 数据库 标签:  ···

PHP+MYSQL数据插入性能对比2014-03-13

建表类型为InnoDB使用事务插入10万条记录需要25秒左右若不使用则需要........很长,可能你都不想记录.修改表类型为MyISAM插入10万条记录需要26秒左右插入了100万条数据花费了242秒左右所有测试都是在本机上进行的,当我放到服务器上就不一样了!...
此文被围观2309 分类: 数据库 标签:  ······

关于mysql处理百万级以上的数据时如何提高其查询速度的方法2014-03-03

      最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法。由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的表执行一条条件查询,其查询时间竟然高达40几秒,相信这么高的查询延时,任何用户都会抓狂。因此如何提高sql语句查询效率,显得十分重要。以下是网上流传比较广泛的30种SQL查询语句优化方法:1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=04、尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num=10 or num=20可以这样查询:select id from t where num=10union allselect id from t whe...
此文被围观1505 分类: 数据库 标签:  ·····

PHP5 mysqli 教程2014-03-03

mysqli提供了面向对象和面向过程两种方式来与数据库交互,分别看一下这两种方式。1.面向对象在面向对象的方式中,mysqli被封装成一个类,它的构造方法如下:__construct ([ string $host [, string $username [, string $passwd [, string $dbname[, int $port [, string $socket ]]]]]] )在上述语法中涉及到的参数说明如下。l         host:连接的服务器地址。l         username:连接数据库的用户名,默认值是服务器进程所有者的用户名。l         passwd:连接数据库的密码,默认值为空。l         dbname:连接的数据库名称。l         por...
此文被围观1930 分类: 数据库 标签:  ····

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          ...
此文被围观892 分类: 数据库 标签:  ····

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...
此文被围观1963 分类: 数据库 标签:  ···

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

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

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...
此文被围观2319 分类: 数据库 标签:  ·····

删除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...
此文被围观1971 分类: 数据库 标签:  ·····

启动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);...
此文被围观3639 分类: 数据库 标签:  ····

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()的方法,所以这...

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

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