Tagged: Database RSS

  • tin 3:12 pm on June 18, 2008 Permalink | Log in to leave a Comment
    Tags: Database,   

    在 OSX 10.5 (Leopard) 安装 MySQL-Python 

    友人nicholas.ding说:

    尝试安装了一下 MySQL-python,发现竟然编译不过去,在网上搜了一下,找到了一个 workaround,应该是作者疏忽了。

    原文在:http://www.keningle.com/?p=11

    需要下载源码自行编译,首先修改 _mysql.c,删除从 34 行开始的 3 行。

    #ifndef uint
    #define uint unsigned int
    #endif
    

    uint port = MYSQL_PORT;
    uint client_flag = 0;
    

    修改为

    unsigned int port = MYSQL_PORT;
    unsigned int client_flag = 0;
    

    创建一个符号链接

    $ sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
    

    最后编译安装就可以了

    $ python setup.py install
    
    在我这里这样还是不可以,最后发现还要做如下改动,原因可能是我使用了mysql官方提供的package安装mysql,结果路径有些差异造成的:
    在安装前还需要修改setup_posix.py,把mysql_config.path = "mysql_config"修改为:
    mysql_config.path = "/usr/local/mysql/bin/mysql_config"
    
    然后再sudo python setup.py install就OK了。
    
     
  • tin 8:57 pm on February 13, 2006 Permalink | Log in to leave a Comment
    Tags: Database   

    关于存储过程和直接执行SQL对比 

    关于存储过程和直接执行SQL:
    需要注意以下几点:
    1、从数据库角度,存储过程总是要比它所对应的纯SQL要慢。
    2、存储过程目的在于简化特别复杂的SQL复合应用的场景。
    3、但是对于一个拥有多条SQL的存储过程来说,它可以提升效率。因为减少了SQL传输的网络延迟。所以说SQL复杂时,存储过程可以增加实际的运行效率。注意对比第1条,第一条是对应服务器调用,这条对应实际的网络环境。
    4、还有就是存储过程很容易减少多条SQL之间数据传递的麻烦(有可能带来没有实际意义的中间变量),可以在服务器端把它们隐藏。
    所以我想应该考虑这几点来选择存储过程:
    1、拥有复杂的数据操作,需要SQL复合。
    2、中间传递的临时数据过多或者过大的时候。
    使用存储过程的Java代码:JDBC call Stored Procedure
    CallableStatement cstmt = conn.prepareCall("{ ? = call md5( ? ) }");
    // CallableStatement cstmt = conn.prepareCall("begin ? := md5( ? ); end;"); // oracle syntax
    cstmt.registerOutParameter(1, Types.VARCHAR); // set out parameters
    cstmt.setString(2, "idea"); // set in parameters
    cstmt.execute();
    String md5Str = cstmt.getString(1); // Getting OUT Parameter Values
    cstmt.close();
     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
esc
cancel