我正在建立一个网站,其中有表:电影和剧集
每页都有:
-
第一个字符列表…
-
(管理员定义的)最多下载数(计算下载数)
-
(管理员定义的数量)最新的更新
-
如果用户搜索了某项内容,则显示搜索结果,或者
选择以它开头的名字的第一个字符列表…所以我想问的是:我应该为它们中的每一个做一个单独的查询吗?
1. "SELECT * FROM movies ORDER BY name" /* then check the first Characters */
2. "SELECT * FROM movies ORDER BY downloads_count DESC LIMIT :lim", array(":lim"=>NUMBER_TO_SHOW)
3. "SELECT * FROM movies ORDER BY last_update DESC LIMIT :lim", array(":lim"=>NUMBER_TO_SHOW)
4. "SELECT * FROM movies ORDER BY WHERE name LIKE :char name LIMIT :start, :end", array(":char"=>$first_char."%", ":start"=>$page_starting_number, ":end"=>$page_ending_number)
,或者我是否应该每次调用名称并对它们进行排序,并检查第一个字符是否与foreach(){}
匹配?
哪一个对服务器的压力更小(因为我正在编程的服务器是一个繁忙的服务器,我真的不喜欢炸毁它…: |)(我听说过mysql缓存…它有多可靠?)
Thanks in advance
最好在查询中这样做,因为数据库系统已经过优化。对于重复出现的查询,您可以使用Memcached
,例如