PHP技术,PHP研究及学习,Python学习,人工智能,大数据服务

文档归类:数据库

MYSQL的随机查询的实现方法及查询优化2013-08-09

MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。 但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,仍然可以通过ORDER BY RAND()来实现随机。 但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上。查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低。 You cannot use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times. 搜索Google,网上基本上都是查询max(id) * rand()来随机获取数据。 SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM `table`)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id ASC LIMIT 5; 但是这样会产生连续的5条记录。解决办法只能是每次查询一条,查...
此文被围观2104 分类: 数据库 标签:  ······

mysql concat函数分析2013-05-03

php无限分类,有可能要用到这个函数。 MySQL concat函数是MySQL数据库中众多的函数之一,下文将对MySQL concat函数的语法和使用进行说明,供您参考和学习。 MySQL concat函数使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。 一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQL concat函数可以连接一个或者多个字符串,如 [php] mysql> select concat('10'); +--------------+ | concat('10') | +--------------+ | 10 | +--------------+ 1 row in set (0.00 sec) mysql> select concat('11','22','33'); +------------------------+ | concat('11','22','33') | +------------------------...
此文被围观1425 分类: 数据库 标签:  ·····

配置ruby下的mysql连接2013-04-26

把Mysql安装目录中bin目录下的libmysql.dll 复制到ruby安装目录的bin目录下(一般是c:\ruby\bin下) 到http://rubyforge.org/frs/?group_id=627 下载rdoc-2.4.3.gem (注意:只能用迅雷下,直接另存为后,文件后缀名将变成非.gem的东东),然后把rdoc-2.4.3.gem复制到c:\ruby\down下(down目录是我自己建的),然后命令行: [php] cd c:\ruby\down gem install rdoc-2.4.3.gem [/php] 此举是为了后面顺利安装mysql for ruby的文档 安装mysql for ruby的驱动,命令行键入: gem install mysql 把mysql.so复制到C:\ruby\lib\ruby\site_ruby\1.8\i386-msvcrt下(mysql.so文件如果本机找不到,可在http://rubyforge.org/frs/?group_id=904 下载InstantRails-2.0-win.zip解压后得到)//这个不是必须的 然后就可以在代码中连接了: [php] require "mysql" dbc=Mysql.real_connect('localhost','root','123456','rails_development') res=dbc.query('select * from tbl_...
此文被围观1241 分类: 数据库 标签:  ···

MySQL 数据类型分析(一),MySQL 数据类型讲解2013-04-24

做PHP开发这块一直在用mysql数据库,虽然对其基本的一些字段信息还是能理解,但是都不是很完全和系统!在后期对mysql数据进行优化的时候也出现了盲点,于是认真的学习一下mysql里的面知识很有必要! 数值类型 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补。 表列出了各种数值类型以及它们的允许范围和占用的内存空间。 类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值 MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值 INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值 BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,...

mysql命令mysql_unbuffered_query和mysql_query区别2013-04-12

刚看到写一同行写的这篇文章,以前没有看到过!感觉比较实用,转载了! 以前做数据库连接的时候一直都是用mysql_query获取结果集,最近在手册上看到还有一个是mysql_unbuffered_query函数,它的意思是不自动获取和缓存结果集,这样的好处是可以节省大量的内存。缺点是有两个函数不能使用,分别是mysql_num_rows和mysql_data_seek函数。 经过自己的比较的确是比用mysql_query要快一些,可能是数据比较大的时候比较明显吧。不管怎么说能快一点也好一点,各个方面都快一些,那么积累起来就很不错了。 文章来源:http://www.phpyuandi.com/read-17342.html...
此文被围观1274 分类: 数据库 标签:  ····

php+mysql实现无限级分类,树型显示分类关系,php mysql分类缓存技术2013-04-11

最近在看一个关于无限分类的缓存技术。 php+mysql缓存技术的实现    本教程适合于那些对缓存SQL查询以减少数据库连接与执行的负载、提高脚本性能感兴趣的PHP程序员。 概述 许多站点使用数据库作为站点数据存储的容器。数据库包含了产器信息、目录结构、文章或者留言本,有些数据很可能是完全静态的,这些将会从一个缓存系统中得到的极大好处。 这样一个系统通过把SQL查询的结果缓存到系统的一个文件中存储,从而阻止连接数据库,构造查询与取得返回结果而提高了响应时间。 有些系统数据库并不是放在WEB服务器上的,这样需要一个远程连接(TCP或者其它类似的),或者从数据库中获取大量的数据,这样你得忍受更多时间,这决定于系统响应时间与资源利用。 前提 本教程使用MySQL作为数据库。你需要安装MySQL(www.mysql.com下载是有效的)和激活PHP MYSQL扩展(默认情况是激活的)。 由于要查询数据库,你需要知识一些SQL(结构化查询语言)的基本常识。 缓存SQL查询结果 为什么要缓存查询结果? 缓存查询结果能极大地改进脚本执行时间和资源需求。 缓存SQL查询结果也允许你通过后期处理数据。如果你用文件缓存去存储全部脚本的输出结果(HTML输出),这样可能是行不通的。 当你执行一个SQL查询时,点典的处理过程是: <!--[if !supportLists]-->l        <!--[endif]-->连接数据库 <!--[if !supportLists]--&g...

mysql null的用法2013-04-07

今天在做一个统计的时候,有些字段信息为空null 以为是这样写的查询条件: [php] select * from tbl_msg where PID = ''; [/php] 发现没有查询到数据, 改成: [php] select * from tbl_msg where PID = NULL; [/php] 也没有数据出来. 最后修改成了 [php] select * from tbl_msg where PID IS NULL; [/php] 平时注意一下mysql的这些基本命令还是有好处的....
此文被围观1073 分类: 数据库 标签:  ····

MySQL命令行导出数据库2013-03-23

MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin (或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p news > news.sql (输入后会让你输入进入MySQL的密码) (如果导出单张表的话在数据库名后面输入表名即可) 3、会看到文件news.sql自动生成到bin文件下 命令行导入数据库: 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p 如我输入的命令行:mysql -u root -p (输入同样后会让你输入MySQL的密码) 4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库 5,输入:mysql>use 目标数据库名 如我输入的命令行:mysql>use news; 6,导入文件:mysql>source 导入的文件名; 如我输入的命令行:mysql>source news.sql; MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成的。 1.Win32...
此文被围观2109 分类: 数据库 标签:  ····

IP数据库,新浪在线IP数据库,根据IP获取所在城市2013-03-20

获取当前ip信息,查询IP所属地区信息 新浪 IP 地址查询接口: http://counter.sina.com.cn/ip?ip=139.256.0.9 接口形式:http; 返回内容:javascript 片段; 查询地址:可以指定 IP 地址; 返回的数据格式: [js] var ILData = new Array("125.39.140.252","中国", "天津市", "", "网通"); if (typeof(ILData_callback) != "undefined") { ILData_callback(); } [/js] 使用JS代码进行调取: [php] <script language="javascript" type="text/javascript" src="http://counter.sina.com.cn/ip"></script> <script>document.write("你的IP是:"+ILData[0]+",来自:"+IPData[2]);</script> [/php] 有道 IP 地址查询接口: http://www.youdao.com/smartresult-xml/se...
此文被围观2552 分类: 数据库 标签:  ···

mysql表添加注释,为mysql表添加注释语句,mysql更改字段注释2013-02-19

给MySQL数据库中的表添加注释的命令: alter table 表名 comment '注释'; 如果要更改列(字段)的注释,则麻烦一点: 首先查看表的:show full column from 表名; 然后再执行: alter table 表名 modify column '字段名' smallint(6) comment '注释'; 将原来的字段类型和长度不变 加上comment 就可以了...
此文被围观1822 分类: 数据库 标签:  ·····

Mysql全文检索,PHP+MYSQL实现全文检索2013-01-25

全站搜索:请查看开源中国的搜索板块 如何使用MYSQL+PHP实现全文检索功能? 很多人可能马上可以想出几种方案,比如:文件检索法、采用SQL的like语句等方法,但这些方法效率都相当的低。 这里介绍一种比较高效的PHP全文检索实现方法,这就是采用MYSQL的FULLTEXT字段类型。但是MYSQL的FULLTEXT字段对中文的支持不是很好,本文也一并介绍如何通过PHP+MYSQL实现中文全文检索功能。 首先需要用到一个PHP中文分词扩展模块——SCWS,关于这个模块的安装和使用大家可以到www.ftphp.com/scws去查找相关内容(如有问题请留言)。 然后再看看mysql的fulltext字段类型的相关信息: MySQL3.23.23之后的版本开始支持全文索引和搜索。全文索引在 MySQL 中是一个 FULLTEXT 类型索引。 FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、VARCHAR 或 TEXT 列上创建。对于大的数据库,将数据装载到一个没有 FULLTEXT 索引的表中,然后再使用 ALTER TABLE (或 CREATE INDEX) 创建索引,这将是非常快的。将数据装载到一个已经有 FULLTEXT 索引的表中,将是非常慢的。 MYSQL全文搜索通过 MATCH() 函数完成。 下面举一简单例子: 1、新建数据表: CREATE TABLE fulltext_samp...
此文被围观1286 分类: 数据库 标签:  ·····

mysql错误:1286 - Unknown table engine 'InnoDB\temp',mysql错误解决方法2013-01-25

昨天晚上有一个客户说他的网站不能下载了!我进去一看,页面上显示:1286 - Unknown table engine 'InnoDB\temp' 一看应该就知道是数据库这块的问题,mysql错误解决方法 一、 Unknown table engine 'InnoDB'[转载] 查看文章 ERROR 1286 (42000): Unknown table engine 'InnoDB'2009-07-17 15:51 从主库复制innodb的所有文件做副库,启动后报ERROR 1286 (42000): Unknown table engine 'InnoDB' 删ib_logfile*,可能是my.cnf对log的设置不一样造成读不出来。 最近在迁移mysql数据库innodb引擎的过程中,碰到以上错误。把ib_logfile*删除,再启动mysql即可正常。yeah。 好久没写文章了。 二、 Query failed: Unknown table engine ‘InnoDb’ 提示信息明显,缺少InnoDb数据库引擎。 命令行下查看一下可用数据库引擎: Mysql> show engines; +————+———+———— | Engine | Support | Comment … +————+———+———— | MEMORY | YES | … | FEDERATED | NO | ...

mysql指定ID排序,MySQL 按指定字段自定义列表排序,MySql查询结果排序2013-01-18

mysql指定ID排序,MySQL 按指定字段自定义列表排序,MySql查询结果排序 方法一、 [php] select * from table1 order by instr('1,4,5,7,2',id) [/php] 方法二、 [php] select * from test where id in(3,1,5) order by find_in_set(id,'3,1,5'); [/php] 方法三、 [php] select * from test where id in(3,1,5) order by substring_index('3,1,2',id,1); [/php] 方法四、 [php] select * from a where id in(8,11,3) order by field(id,8,11,3); [/php] 大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例, 下同): SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` ASC 降序排列的 SQL 为: SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` DESC 有时以上排序并不能满足我们的需求. 例如, 我们想要按 id 以 5, 3, 7, 1 的顺序...

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

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