blog.TangGaowei.com

MySQL 支持繁体字

作者 Neot 写于 2008-12-26  | 1,553 次浏览

要 MySQL 支持繁体字,可以将相关编码设置为 UTF8 (也叫 UTF-8)。编码的设置从浏览器到表字段,一个都不能少:

  • 浏览器设置
  • HTML设置
  • 服务器 Request 对象设置
  • 数据库连接设置
  • 数据库设置
  • 表设置
  • 表字段设置

其它不讲,这里只记录数据库连接的设置。数据库连接设置就是修改 MySQL 连接的 URL 地址,参考如下:

jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8

注意:characterEncoding 参数是utf8,而不是 utf-8

[ 标签: MySQL, utf8 ]
[ 固定链接:http://blog.tanggaowei.com/2008/12/mysql.html ]

Struts 输出错误信息

作者 Neot 写于 2008-12-22  | 1,191 次浏览

使用 <html:errors /> 在 jsp 页面输出错误信息时无法判断 errors 是否存在。使用以下代码输出错误更加灵活:

 

<html:messages id=”error”>

<p class=”message”><bean:write name=”error”/></p>

</html:messages>

[ 标签: errors, struts ]
[ 固定链接:http://blog.tanggaowei.com/2008/12/struts.html ]

Oracle 10g 的索引优化

作者 Neot 写于 2008-12-18  | 1,949 次浏览

最近公司网站的速度一起很不理想,文章页面基本都要 10s 以上才能打开。数据库用的是 Oracle 10g Express Edtion,存放文章的表超过了 10 万数据量,类似执行一个 select count(1) from res where class_id=1 这样的语句就经常在 10s 以上。然而,今天我在 class_id 上加了一个索引,这条语句的执行时间就几乎变成了 0s。效果之显著,完全出乎我的预料。下面是相关的总结:
 
1. 监控 select 语句
 
(“数据库主页”从开始菜单里“Oracle Database 10g Express Edition”的“转至数据库主页”进入)
 
进入“数据库主页>管理>数据库监视器>会话>SQL”页面,在“搜索”里输入“select”,点击“开始”。 这样就可以看到最近执行的 select 语句。点击“SQL”列里的 SQL 语句链接,查看执行情况。其中,“CPU时间”即为执行所用的时间,“已处理的行数”为查询结果的行数。下面的“SQL文本”是 SQL 语句的完整内容,“索引”区域显示该查询使用了哪个索引。
 
找到“CUP时间”超过 1 秒的查询,看是否需要添加索引。
2. 添加索引
 
进入“数据库主页>对象浏览器”页面,在右边偏上方有一个“创建”按钮。点击“创建” 按钮,在出现的菜单里选择“索引”,然后输入“表名”,“索引类型”使用“常规”,再点击“下一步”。
 
在新出现的页面,输入索引的名称和索引列。如果是不唯一的字段,最好将“单性值”设置为唯一,可能有助提高检索速度。再点击“下一步”,点击“完成”按钮。
 
照我的理解,创建索引时选择什么索引列,应该是由 select 语句的 where 部分决定的。比如 where id=1 ,只需选择 id 一个索引列;如果是 where id=1 and name=2 ,则需要选择 id 和 name 两个索引列来创建索引。只对主键进行索引,因为是唯一的,所以将“单性值”设置为“唯一”。
 
数据量比较大的表,都应在其主键上创建一个索引,其它需要的另加。
 
order by 语句里的字段,一般无法使用索引,所以,尽量在 order by 之前将查询结果的行数缩到最少。
 
要提高 order by 语句的执行效率,可适当增加 sort_area_size 的值( 10240000=10m ):
 
alter system set sort_area_size=10240000 scope=spfile;
 
 
附一:为表添加主键
 
进入“数据库主页>对象浏览器”页面,在左则选择要创建主键的表。在右边出现的表页面中,点击“约束条件”->“创建”,“约束条件类型”设置为“主键”,其它自行填写。
 
附二:Oracle 配置参数查询语句
 
SELECT NAME,VALUE
FROM v$parameter
WHERE NAME IN
(’sga_max_size’,'db_cache_size’,
’shared_pool_size’,’shared_pool_reserved_size’,'large_pool_size’,'java_pool_size’,
‘db_block_size’,'db_block_buffers’,'log_buffer’,’sort_area_size’,’sort_area_retained_size’,
‘hash_area_size’,’sessions’,'open_cursors’
)ORDER BY NAME;
附三:其它参数设置命令
 

alter system set sga_max_size=700m scope=spfile;

 

alter system set sga_target=700m scope=spfile;


[ 标签: oracle, 数据库优化, 索引 ]
[ 固定链接:http://blog.tanggaowei.com/2008/12/oracle-10g.html ]

无条件支持方舟子

作者 Neot 写于 2008-12-11  | 1,236 次浏览

方舟子:http://blog.sina.com.cn/fangzhouzi

观注方舟子的博客有一年多了,他写的科普文章我很喜欢。许多门户网站对科普的贡献也不过一些互相抄袭的科技新闻,真正认真做科普的少之又少。

科普是科学发展的土壤,鄙视科普就是鄙视科学。科普不等于小儿科,科普是面向所有人的,从小孩到老人。科普是科学知识的普及,是一个深入浅出的过程。有些科普工作者只知道浅出,没有深入,所以很多地方都阐述不清。他们的科普文章让看的人迷惑,没有吸引力。但方舟子的文章你看了就知道,他是经过反复思考,并思考成熟后才写的,是真正的深入浅出。在中国,这样的人太少!这可能是中国出不了诺贝尔奖的原因之一吧。

无条件支持方舟子!人无完人,要求别人之前先看看自己。

[ 标签: 方舟子, 科普 ]
[ 固定链接:http://blog.tanggaowei.com/2008/12/post-49.html ]

让 JSP 在 Tomcat 的 webapps 目录下执行

作者 Neot 写于 2008-12-10  | 2,043 次浏览

第一次使用 Tomcat 时就觉得很怪异:将 index.jsp 文件放到 webapps 目录下,再通过 http://localhost:8080/index.jsp 访问,执行却是 webapps/ROOT/index.jsp,与自己想像的完全不同。

今天,我将 Apache 与 Tomcat 集成,并将它们的文档根目录都指向 D:/htdocs。然后我将 webapps/ROOT 目录复制到 D:/htdocs 目录,然后通过 http://localhost/index.jsp 访问,发现 index.jsp 中使用的图片都无法显示。

后来才知道,按照配置,图片都交由 Apache 处理。Apache 认为 http://localhost/ 指向 D:/htdocs 目录,而 Tomcat 却认为 http://localhost/ 指向 D:/htdocs/ROOT 目录。Apache 想在 D:/htdocs/tomcat.gif 处寻找 http://localhost/tomcat.gif 图片,但是,http://localhost/tomcat.gif 实现却在 D:/htdocs/ROOT/tomcat.gif,因此无法找到。

通过对 Tomcat 的 server.xml 文件作简单修改,就可以解决这个问题:

<Host name=”localhost” appBase=”D:/htdocs” >

<Context path=”" docBase=”"  reloadable=”true” debug=”0″ />

</Host>

<Context> 标签将 http://localhost/ 地址修改到 D:/htdocs 目录。如果不加这个 <Context> 标签,docBase 的值默认等于“ROOT”。

作以上修改后,重启 Tomcat,再将 ROOT 下的文件及目录都复制到 D:/htdocs 下即可。

[ 标签: apache, tomcat ]
[ 固定链接:http://blog.tanggaowei.com/2008/12/jsp-tomcat-webapps.html ]

订阅

 

手机访问

http://blog.tanggaowei.com/wap/

Google