MySQL

  • 作为LAMP的开发人员,估计或多或少都遇到过MySQL的乱码问题。就算是老鸟,有时候也会被它给郁闷。这篇文章,将从底层机制解释乱码出现的原因,并给出解决方案。(如果你只想知道,怎么解决问题,只用看完前两端就可以了)。

    解决方案:

    1. 确定出现乱码的列(数据表中的字段)的编码,记为X
    2. 在你每次连接数据库的时候使用:”SET NAMES `X`”
    3. 确保你的写入页面和显示页面(通常是php script )有相同的编码。

    (more…)

  • logo_mysql_sun_a对于刚刚接触MySQL的用户,如果想用C语言连接MySQL,往往会是一件很麻烦的事情。这里就整理过程做一个详细的说明,以便参考。 (more…)

  • 分页优化的四种方式

    ·

    很久以前读了一篇关于分页的文章,后来越想越有道理,最近又重新找出来,并做了翻译,原文参考:Four ways to optimize paginated displays.

    翻译背景:在大数据量的情况下,原本很简单的分页如果没有处理好,你会发现分页的请求会消耗你大量的数据库时间。如果你遇到了这个问题,文章给了你几个很好的解决的方案。当然,初学者若能看完这篇文章,那么它会指导你写出更具有扩展性的分页代码。

    全文概述:文中提到了分页的办法总结如下:

    1. 全部缓存查询结果。把查询结果全部缓存起来(例如文件缓存、静态化结果页面等)。
    2. 不详细显示总共有多少分页。这里有两个优化的技巧。其一每次在计算总条目的时候,我就固定查询501条,然后将前500条分页显示好,如果第501条确实存在,那么给出按钮 “查看更多…”(这种情况会很少)。其二,在每次列表本页面的时候,比如第一页我要显示1-20条,那么我查询出1-21条。如果第21条真的存在,我就给出”下一页”按钮,依次类推。
      (more…)