天高地厚 作词:武雄 作曲:詹凌驾,Keith Stuart 演唱:信乐团
mysql笔记–变更数据表结构
1,重新命名数据表 alter table A rename to B //数据表A改名为B rename table A to B //数据表A改名为B rename A toC,B to A,C to A //数据表A和数据表B互换名字 alter table S.A rename to T.A //数据库S里面的表A移动到数据库B里面 rename table S.A to T.A //数据库S里面的表A移动到数据库B里面 2,改变数据列的类型 我们现在要把数据表A里面的一个smallint unsigned类型的数据列I再次改动为 mediumint unsigned 类型 alter table A motify I mediumint unsigned alter table A change I I mediumint unsigned 注意change子句的特点:不仅能够改变数据列的类型,还能改变数据列的名字。这是modify子句所不能完成的。下面就把这个数据列改名了。 alter table A change I J mediumint unsigned 3,将数据表由可变长度数据行转变成固定长度数据行 有的时候为了提高性能,需要做这样的转变,但有一点需要注意:必须用同一条alter命令来一次改变所有的数据列,不能仅仅改变一个数据列!举例如下: create table A(name varchar(40),address varchar(80)) 我们开始修改命令就应该是: alter table A modify name char(40),modify address char(80); 4,将数据表由固定长度数据行转变成可变长度数据行 如果觉得空间利用率不高,那就需要再转变回来,这个就很简单了,没有特别要求 alter table A modify name varchar(40) 5,转换数据表类型 我们知道,MySQL数据库存在多种数据表类型,但每一种类型的特性并不相同。 如果你想让你的数据表支持事务处理机制。那就必须把它搞成BDB或innoBDB格式 alter table A type= BDB alter table A type= InnoBDB
MySQL字段类型详解
MySQL字段类型详解 核心提示:MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。 MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。 概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。由MySQL支持的列类型列在下面。下列代码字母用于描述中:M指出最大的显示尺寸。最大的合法的显示尺寸是 255 。D适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30,但是应该不大于M-2。方括号(“[”和“]”)指出可选的类型修饰符的部分。注意,如果你指定一个了为ZEROFILL,MySQL将为该列自动地增加UNSIGNED属性。 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。注意,所有算术运算用有符号的BIGINT或DOUBLE值完成,因此你不应该使用大于922337203685477580 …
APMServ开启使用.htaccess设置rewrite的方法
APMServ开启使用.htaccess设置rewrite的方法 打开APMServ\Apache2\conf\httpd.conf,找到 LoadModule rewrite_module modules/mod_rewrite.so去掉前面的# 找到 #APMServ默认虚拟主机 把AllowOverride None改为 AllowOverride Options FileInfo 重启apache,完毕 APMServ启用DISCUZ伪静态2009-12-03 22:32APMServ启用伪静态,以dz伪静态为例; 配置APMSERV,按照顺序以此打开Apache目录下的conf目录,总的就是D:APMServ5.2.6(5.2.0和5.2.6都适用此方法)Apacheconf 用记事本打开 httpd.conf 查找 LoadModule rewrite_module modules/mod_rewrite.so 去掉前面的# 无#则不用管 然后在找到 #APMServ默认虚拟主机,把AllowOverride None改为 AllowOverride Options FileInfo,这样,APMServ默认网站目录(就是hosts目录)就能支持 .htaccess 。 # 将 RewriteEngine 模式打开 RewriteEngine On # 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 / RewriteBase / # Rewrite 系统规则请勿修改 RewriteRule ^archiver/((fid|tid)-[w-]+.html)$ archiver/index.php?$1 RewriteRule ^forum-([0-9]+)-([0-9]+).html$ forumdisplay.php?fid=$1&page=$2 RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+).html$ viewthread.php?tid=$1&extra=page%3D$3&page=$2 RewriteRule ^space-(username|uid)-(.+).html$ space.php?$1=$2 Rewri …
.htaccess文件设置技巧16则
.htaccess文件设置技巧16则 .htaccess 文件 (Hypertext Access file) 是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有一堆参数可以让你配置出几乎随心所欲的功能。.htaccess 配置文件坚持了Unix的一个文化——使用一个ASCII 的纯文本文件来配置你的网站的访问策略。 这篇文章包括了16个非常有用的小技巧。另外,因为.htaccess 是一个相当强大的配置文件,所以,一个轻微的语法错误会造成你整个网站的故障,所以,在你修改或是替换原有的文件时,一定要备份旧的文件,以便出现问题的时候可以方便的恢复。 1. 使用.htaccess 创建自定义的出错页面。对于Linux Apache来说这是一项极其简单的事情。使用下面的.htaccess语法你可以轻松的完成这一功能。(把.htaccess放在你的网站根目录下) ErrorDocument 401 /error/401.php ErrorDocument 403 /error/403.php ErrorDocument 404 /error/404.php ErrorDocument 500 /error/500.php 2. 设置网站的时区 SetEnv TZ America/Houston 3. 阻止IP列表 有些时候,你需要以IP地址的方式阻止一些访问。无论是对于一个IP地址还是一个网段,这都是一件非常简单的事情,如下所示: allow from all deny from 145.186.14.122 deny from 124.15 Apache对于被拒绝的IP会返回403错误。 4. 把一些老的链接转到新的链接上——搜索引擎优化SEO Redirect 301 /d/file.htmlhttp://www.htaccesselite.com/r/file.html 5. 为服务器管理员设置电子邮件。 ServerSignature EMail SetEnv SERVER_ADMIN default@domain.com 6. 使用.htaccess 访止盗链。如果你网站上的一个图片被别的N多的网站引用了,那么,这很有可能会导致你服务器的性能下降,使用下面的代码可以保护某些热门的链接不被过多的引用。 Options +FollowS …
多维数据查询效率分析
多维数据查询效率分析 前面分析了在PostgreSQL和MySQL中进行多维数据查询的挑战。问题的根本在于,按行存储的数据库在行变得很大(wide table)的情况下,一旦索引无法完成所有的查询工作,就会受到行大小的影响。为了避免按行存储的缺陷,按列存储的数据库就被发明了出来。按行存储的数据库有很多,绝大部分都是要花钱的,开源的有MonetDB。和前面相同的数据量,相同的wide table的表设计,用MonetDB可以快上很多: sql>select count(contact_id) from spike2 where a1 = 7; +——–+ | L24 | +========+ | 830569 | +——–+ 1 tuple (24.576ms) sql>select count(contact_id) from spike2 where a1 = 7 and a2 = 5; +——–+ | L25 | +========+ | 164788 | +——–+ 1 tuple (105.352ms) sql>select count(contact_id) from spike2 where a1 = 7 and a2 = 5 and a3 = 1; +——+ | L26 | +======+ | 4040 | +——+ 1 tuple (24.963ms) 复制代码 从结果上来看,普遍是快上10倍,极端情况下要快上100倍。MonetDB之所以快,除了按行存储之外,还有一个秘诀是它会被SQL编译成小的关系代数操作。简单的关系代数操作就比如加法,这个操作就只做两个集合相加。每个“关系代数操作”都是用C甚至汇编优化的。普通的按行存储的数据库的实现其实是外层有个循环,循环体是一个解释器,解析过的SQL和行的记录是输入。而MonetDB的编译实现方式就避免了在循环里放置一个解释器。这样做的好处是有利于CPU做分支预测。因为解释器的代码相对于硬编码的“关系代数操作”来说要复杂得多,相应的分支预测失败率也高很多。 MonetDB的缺陷也是非常明显的。每个关系代数操作都要把其结果完全计算出来(Materialized),也就是要占用内存。比如你要SELECT A+B+C,那么A+B的每行的结果 …
WordPress自动截取文章段落插件
WordPress建立博客后,你是否遇到过这样的问题,当你发表几篇较长的文章时,你的博客首页就会拉的好长,wordpress里面有个自带的more标记可以截取文章,使用起来有点不方便,还得来回的切换源码格式,实质令人讨厌啊。 wp-limit-posts-automatically插件就是解决这个问题的,安装后可以设置几种方式来进行截断文章,那样,每次发表文章时,就不用再为文章截断的事情而来回的切换源码格式了,下面就来看看此插件的安装及使用吧! wp-limit-posts-automatically插件安装: 下载wp-limit-posts-automatically插件,将压缩包解压后,把文件夹上传到wp-content/plugins/目录下。 登录WordPress管理后台,点击“Plugins”找到上传的插件,激活该插件。 插件激活后,在“Setting”–>“limit-posts-automatically”中设置相关信息,如下图所示(点击查看大图): 在图中基本上把插件的相关功能都有介绍了,这里就不重复解说了,但需要说明的是,由于存在中英文字符的区别,此插件在按照Letter或word格式进行文字截取时,会出现文字长度不对的情况,而且有时还会出现乱码的情况。 为了解决这个问题,国内有位博主对此插件进行了汉化,汉化后的插件完全按照中文习惯,合并了Letter和word的分割方式,让文章正常分割,而且也解决乱码的问题,汉化后的插件使用和英文版的一样,全中文界面使用起来应该更方便。 limit-posts-automatically插件下载地址:点击下载 limit-posts-automatically插件作者地址:点击进入 limit-posts-automatically汉化插件下载地址:点击下载 limit-posts-automatically汉化插件作者地址:点击进入 转帖自:http://www.wordpress.la/wordpress-limit-posts-automatically.html