以图明志

数据库技术

SQL in与exists的执行效率比较

筛选条件是在主查询上还是在子查询上
测试结果(总体来讲exists比in的效率高):效率:条件因素的索引是非常关键的。sql优化中,使用in和exist? 主要是看你的筛选条件是在主查询上还是在子查询上。条件因素的索引是非常关键的,用in 扫描计数 47,逻辑读取 97 次,用exists 扫描计数 1,逻辑读取 3 次。把sysobjects作为条件:sysobjects 的数据少于 syscolumns,exists 比 in 多预读 15 次。

数据库技术

SQL语句在数据库中是如何执行的

sql语句执行原理
我们在数据层执行SQL语句时,应用程序会连接到相应的数据库服务器,把SQL语句发送给服务器处理。SQL计划缓存,经常用查询分析器的朋友大概都知道这样一个事实,往往一个查询语句在第一次运行的时候需要执行特别长的时间,但是如果你马上或者在一定时间内运行同样的语句,会在很短的时间内返回查询结果。

数据库技术

SQL中的模糊查询介绍

模糊查询功能非常强大
执行数据库查询时,有完整查询和模糊查询之分。一般模糊语句如下:SELECT 字段 FROM 表 WHERE 某字段 Like 条件其中关于条件,SQL提供了四种匹配模式。由于通配符的缘故,导致我们查询特殊字符“%”、“_”、“[”的语句不能正常实现,而把特殊字符用“[ ]”括起便可正常查询。

PHP服务器脚本

两段简单的PHP防SQL注入代码

轻松防止别人进入你的系统
SQL注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验,那么常容易遭到SQL注入攻击。SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录遭到暴露,更改或被删除。这里简单介绍两种方法。

数据库技术

一些SQL性能优化的实用经验

让你的SQL执行得更有效率
查询的模糊匹配,尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用。其实只需要对该脚本略做改进,查询速度便会提高近百倍。把查询条件的供应商名称一栏由原来的文本输入改为下拉列表,用户模糊输入供应商名称时,直接在前台就帮忙定位到具体的供应商。

数据库技术

MySQL的replace()函数的使用

批量更换某个字段里面的特定字符
今天在工作的过程中碰到一个问题,要把数据库中某个列的所有值中含有"shop.xxxx.net"的字符更换成"www.nowamagic.net",本来可以写个脚本,把所有的值都取出再用php进行处理,但是那样就效率非常低了,想到看试下能不能直接在MySQL中用SQL语句直接来处理,经过一番搜索,终于找到解决方案,其实最重要的是mysql的replace函数。

PHP服务器脚本

PHP返回insert操作产生的id

mysql_insert_id()
有些时候在执行数据库的INSERT操作后需要知道其产生的ID(我用的MySQL,主键都是设的AUTO_INCREMENT,执行插入操作的时候不用指定ID的值而由数据库自行产生),这时候就可以使用PHP的函数mysql_insert_id()直接获得这个ID,非常方便。但是有一点,如果在INSERT语句里面明确指出了具有AUTO_INCREMENT属性的ID列的值,那么函数将返回0。

数据库技术

在命令行导出MySQL数据到excel表

一句SQL就可以搞定
有时候需要将 MySQL 的数据导出成 excel,这很简单,无需第三方工具,直接 MySQL 命令行就自带了这样的功能。如果你的数据是 utf-8 编码,可能生成的 excel 会乱码。这不要紧,用文本打开,以 ANSI 另存一下就OK了。

PHP服务器脚本

如何解决MySQL超过最大连接数问题

更多是采用了不合理的设计架构或数据结构引起的
最近网站出现 User 数据库名称 has already more than 'max_user_connections' active connections 的报错,网站瘫痪。有必要研究下这个问题。max_user_connections 是 MySQL 用户连接数的最大值设置,整段语句的意思是:服务器的 MySQL 的最大连接数参数设置不足。解决方法:修改 MySQL 安装目录下 my.ini或者my.cnf 文件内的 max_user_connections参数的数值,重启 MySQL 服务器。

PHP服务器脚本

一些PHP程序员常犯的MySQL错误

构建一个稳定可靠的数据库需要很长时间
对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子。对于很多新手们来说,使用PHP可以在短短几个小时之内轻松地写出具有特定功能的代码。但是,构建一个稳定可靠的数据库却需要花上一些时日和相关技能。下面列举了我曾经犯过的最严重的11个MySQL相关的错误。

数据库技术

MySQL Date,Datetime和Timestamp字段类型

MySQL的时间字段类型
Datetime, Date和Timestamp类型是相关的。本文描述他们的特征,他们是如何类似的而又不同的。Datetime类型用在你需要同时包含日期和时间信息的值时。MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示Datetime值,支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。

PHP服务器脚本

[专题] PHP函数补完:mysql_fetch_array()

从结果集取出数组
mysql_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有。返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。参数 data 是可选的。它规定规定要使用的数据指针。该数据指针是 mysql_query() 函数产生的结果。

PHP服务器脚本

PHP的mysql_connect与mysql_pconnect

功能上无差异,性能上有区别
mysql_pconnect是用来在php与mysql间建立一条持续连接, 一般php的执行模式是脚本开始执行时初始化所有资源, 脚本运行结束后释放所有资源。 而mysql_pconnect的方式则不这样, mysql_connect每次都是重新通过tcp 或者unix domian socket跟sql服务器建立关系, 每次握手都是要消耗不少服务器资源的。

PHP服务器脚本

[专题] PHP函数补完:mysql_query()

mysql_query() 函数执行一条 MySQL 查询
参数 query 是必需。它规定要发送的 SQL 查询。注释:查询字符串不应以分号结束。参数 connection 是可选的。它规定 SQL 连接标识符。如果未规定,则使用上一个打开的连接。如果没有打开的连接,本函数会尝试无参数调用 mysql_connect() 函数来建立一个连接并使用之。

PHP服务器脚本

[专题] PHP函数补完:mysql_num_rows()

取得数据库结果集中的行数
使用 mysql_num_rows 可以取得结果集中行的数目。mysql_num_rows() 返回结果集中行的数目。此命令仅对 SELECT 语句有效。要取得被 INSERT,UPDATE 或者 DELETE 查询所影响到的行的数目,用 mysql_affected_rows()。

PHP服务器脚本

修改phpMyAdmin导入SQL文件的大小限制

检查php.ini配置文件中的三个地方
遇到导入过大文件时,首先检查php.ini 配置文件中的以下三个地方,upload_max_filesize, memory_limit 和post_max_size,并且推荐修改的值要稍大于导入的巨大sql数据库文件;依照这个提示,我修改了以上三个在php.ini中的值以后,重启 了php环境,再次导入时,虽然phpMyAdmin还是显示导入最大限制:20,480 KB,但巨大的80M数据库文件已经被成功的导入了。
4 / 4 首页 < Prev 1 2 3 4 Next > 尾页 页码: