以图明志

数据库技术

提高MySQL效率与性能的技巧

数据库性能是个不得不面对的问题
数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。

数据库技术

MySQL的Order By Rand()有很严重的效率问题

获取数据库随机记录的高效方法
MySQL很多时候需要获取随机数据,举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1,但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。

数据库技术

使用MySQL命令行了解SQL的执行结果

教你如何学习SQL
在命令行下学习SQL是个非常不错的选择,它可以直观地显示SQL的执行结果,下面使用Navicat的命令行工具看看常用的SQL语句的执行情况。

数据库技术

SQL练习:获取最后十条记录

当作SQL的练习吧
获取数据库最后若干条记录是很常见的用法,下面分别用几种方法去实现,当作SQL的练习吧。一种方法是数据库记录倒序排序,然后用limit 10子句获取10条。也可以取得最大记录的id,然后在WHERE子句减去10。下面也是用一样的方法,不过使用的是 count() 函数。

数据库技术

MySQL中char与varchar的区别

选择char还是varchar?
char和varchar类型相似,但是它们的存储和检索方式不同。在MySQL5.0.3,它们在最大长度和是否保留尾部空格也不相同。char和varchar定义了字符串的最大长度。例如,char(30)可以放30个字符。char列的长度在你建表的时候,就是你定义的固定长度。值的范围是0~255。char值存储的时候,右部以空格来填充到指定的长度。

PHP服务器脚本

PHP MySQL开发中的一些经验

很值得参考的经验,可以应用到你的项目中
以下这些tips,是我在实际工作中慢慢形成的,有些可能是不正确的,有些出于个人习惯,所以,千万不要把以下这些条当成什么标准,其中可能隐藏着天大的bug,代码可能正在病态的运行中,SO!请一定仔细的看过后想想,这么做的好处是什么?会产生怎样的负面影响?

数据库技术

设计高效的SQL语句过滤条件

高效过滤条件的准则是什呢?
在编写查询之前,我们甚至应该对过滤条件进行排序,真正高效的条件(可能有多个,涉到同的表)是查询的主要驱动力,低效条件只起辅助作用。那么定义高效过滤条件的准则是什呢?首先,要看过滤条件能否尽快减少必须处理的数据量。所以,我们必须倍加关注条件的写方式。

数据库技术

MySQL时间日期相关函数使用

可以实现一些常见的需求
数据库应用中对日期和时间的操作是非常常用的,MySQL自带了许多很有用的函数,可以帮助我们便捷地实现某些需求。下面我们来介绍一下相关的MySQL日期与实践函数。获取当前日期:curdate(),获取当前时间:curtime(),获取当前时间日期:now(),MySQL 允许任何expr 格式中的标点分隔符。表中所显示的是建议的分隔符。

数据库技术

使用MySQL时需要注意的细节

MySQL的技术细节跟你想象的不完全一样
在SQL中,NULL什么也不等于,而且NULL也不等于NULL。这个查询不会返回任何结果的,实际上,当构建那个plan的时候,优化器会把这样的语句优化掉。当搜索NULL值的时候,应该使用这样的查询:……ORDER BY会按照自然顺序来对输出结果进行排序:这就是说,当第一个表达式的值相等的时候,这些记录才会按照第二个表达式来排序。

数据库技术

MySQL 关于时区的问题

时区设置
网站服务器在美国,发布了一篇文章,时间戳为 1320115246,通过PHP修正后,可以显示成正常的时间,但是归类的时候去归到 10 月份的文章去了。在服务器端运行 SQL,发现该文章的发布时间是 2011-10-31 20:40:46,就是采用了服务器当地的时区了,而文章实际上是 2011-11-01 10:40:46 发布的。归类的时候没法用PHP修正,那么就用 SQL 修正吧。

数据库技术

InnoDB表与索引结构相关知识整理

InnoDB和索引
MySQL把表的数据词典信息以.frm文件的形式存在数据库目录里,所有MySQL存储引擎都是这样的。但是每个InnoDB表在表空间内的InnoDB内部数据词典里也有它自己的条目。当MySQL移除表或数据库,它不得不删除.frm文件和InnoDB数据词典内的相应条目。这就是为什么你不能在数据库之间简单地移动.frm文件来移动InnoDB表。

数据库技术

MySQL时间日期查询相关函数与方法

时间日期函数
MySQL应用中,日期与查询是非常普遍的。比如要查某天、某个星期、或者某个月内的数据,查询两个日期之间的天数差,查询某天是星期几等等。下面就介绍一下相关的MySQL时间与日期函数,与它们的具体使用方法。MYSQL 有没有像 MSSQL 的 getdate() 函数?有,就是 NOW()。

数据库技术

查看、设置与修改MySQL字符集

字符集总结
前一段时间,一直被MySQL的字符集困扰,今天就这方面的知识总结一下。MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

数据库技术

MySQL字符集常见问题的解决方法

字符集的设置和修改
在Google中搜索“mysql 乱码”,可以查到“1,550,000”条结果;搜索“jsp 乱码”,可以查到“1,450,000”条结果,当然JSP乱码不一定就是MySQL乱码,但多数情况是编码问题(可能是页面编码、数据库编码)。可见,编码问题在我们开发过程中是经常出现的,因此对编码的了解、设置和修改就显得及其重要了。

数据库技术

PHP MySQL应用中的字符集问题

为什么WordPress直接察看数据库也不乱码呢?
Character set顾名思义,就是字符、以及字符对应的编码的集合。例如简体中文字符集gb2312就包括简体中文中的所有规定汉字,以及每个汉字对应的代码。Collation,是指比较字符的规则的集合。有了比较规则,才能够将一组数据排序——例如按照英文字母顺序排序、汉字按照拼音顺序排序等等。

PHP服务器脚本

PHP数据库长连接mysql_pconnect的细节

mysql_pconnect的水挺深的
PHP的MySQL持久化连接,美好的目标,却拥有糟糕的口碑,往往令人敬而远之。这到底是为啥么。近距离观察后发现,这家伙也不容易啊,要看Apache的脸色,还得听MySQL指挥。对于作为Apache模块运行的PHP来说,要实现MySQL持久化连接,首先得取决于Apache这个web服务器是否支持Keep-Alive。Keep-Alive是什么东西?它是http协议的一部分,让我们复习一下没有Keep-Alive的http请求。
2 / 3 首页 < Prev 1 2 3 Next > 尾页 页码: