¿Cómo limitar consultas a MySQL a los últimos 50 mil registros?

  • Autor Autor blogers
  • Fecha de inicio Fecha de inicio
B

blogers

Pi
SEO
Tengo esta query que biene en un script que me baje pero no logro hacer que el buscador solo lea los ultimos 50 mil debdi a que estoy haciendo pruebas con una bd de 1 millon de registros pero no logro que solo lea los ultimos 50 mil en una consulta por lo que se ahoga mysql al usar el buscador si me ayudaran como delimitar eso ya intente de todo si alguien me hehca una mano

PHP:
function searchTest($where = false, $type = false, $select = false)
    {
        global $config;
        if (!$where)
            return false;
        $sql = "SELECT COUNT(`T1`.`ID`) AS `Count` ";
        $GLOBALS['rlHook']->load('listingsModifyFieldSearch', $sql);
        if ($select) {
            $sql .= $select;
        }
        $sql .= "FROM `" . RL_DBPREFIX . "listings` AS `T1` ";
        $sql .= "LEFT JOIN `" . RL_DBPREFIX . "listing_plans` AS `T2` ON `T1`.`Plan_ID` = `T2`.`ID` ";
        $sql .= "LEFT JOIN `" . RL_DBPREFIX . "categories` AS `T3` ON `T1`.`Category_ID` = `T3`.`ID` ";
        $sql .= "LEFT JOIN `" . RL_DBPREFIX . "accounts` AS `T7` ON `T1`.`Account_ID` = `T7`.`ID` ";
        $GLOBALS['rlHook']->load('listingsModifyJoinSearch', $sql);
        $sql .= "WHERE (UNIX_TIMESTAMP(DATE_ADD(`T1`.`Pay_date`, INTERVAL `T2`.`Listing_period` DAY)) > UNIX_TIMESTAMP(NOW()) OR `T2`.`Listing_period` = 0) ";
        $sql .= "AND `T1`.`Status` = 'active' AND `T3`.`Status` = 'active' AND `T7`.`Status` = 'active' ";
        if ($type) {
            $sql .= "AND `T3`.`Type` = '{$type}' ";
        }
        $sql .= "AND " . $where;
        $GLOBALS['rlHook']->load('listingsModifyWhereSearch', $sql);
        $GLOBALS['rlHook']->load('listingsModifyGroupSearch', $sql);
        $results = $this->getRow($sql);
        if ($select && $results) {
            foreach ($this->keyword_stat as $kk => $lv) {
                if ($results[$kk] || $results[$this->keyword_map[$kk]] || $results['cat_' . $this->keyword_map[$kk]]) {
                    $this->keyword_stat[$kk]++;
                }
            }
        }
        return $results['Count'];
    }
 
Usa order by id desc "Limit 50000" un saludo
 
Hola blogers, como te dijo juan25 deberia de funcionar ese agregado. Fijate por las dudas, a mi me paso, que estaba intentando ordenarlo por una numeracion, pero la estructura de esa fila estaba dado por char, por lo tanto no estaba ordenando numericamente sino alfabeticamente. Un saludo
 
El LIMIT deberia funcionar, o un TOP;

-- SELECT TOP 50000 columnas FROM tabla.
 
Atrás
Arriba