Как узнать имя последней таблицы в базе

Patrul

Новичок
Как узнать имя последней таблицы в базе

Здравствуйте.
Ситуация следующая:
имеется база данных: A
В ней есть таблицы с именами: 1, 2, 3, 6, 8

Можно ли узнать имя таблицы с наибольшим числовым именем, не используя перебор всех таблиц вот так:
PHP:
$kolvo = mysql_num_rows(mysql_list_tables('A'));
$res = mysql_list_tables('A');
while($row = mysql_fetch_array($res))
{
...//Здесь сравнивать имена таблиц
}
Этот метод работать конечно будет, но боюсь, что если будет порядка 10 тыс. таблиц процесс затянется надолго.
 

HraKK

Мудак
Команда форума
Это вам не надо.

Опишите задачу которую вы решаете.
 

Patrul

Новичок
:) хороший ответ
Задача:
можно назвать это создание движка форума, для каждой новой темы создается своя таблица с именем - следующим порядковым номером в базе.
Мне нужно узнать какое имя присвоить следующей таблице.

Возможно проще вести таблицу с именами таблиц и из нее выбирать сортировкой с конца 1 значение?
 

voituk

прозревший
>> для каждой новой темы создается своя таблица с именем - следующим порядковым номером в базе

/me в шоке !!!

>> Может вы тогда напишите что мне надо?
Боюсь, что менять профессию!
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Patrul
Посмотрите как реализована
БД в SMF ну или phpBB форумах.
 

Wicked

Новичок
седня даже не пятница... :\

-~{}~ 16.08.07 23:31:

Patrul
а что, собственно, мешает Вам хранить все темы в одной таблице?

Вы даже не представляете, насколько.
 

Patrul

Новичок
посмотрел на SMF там есть таблица с id тем
и одна таблица со всеми сообщениями, в которых есть столбец с родительским id.

Примерно такая структура мне и представлялась.
Но почему я не хочу делать так:
Мне кажется, что выбирать одно сообщение из 10000 (1000 тем по 10 сообщений в каждой) из одной таблицы займет больше времени чем выбирать 1 сообщение из 10? Или я не прав?
 

Patrul

Новичок
ok С этим понял.
Еще вопрос:
для отбора
PHP:
like '%..%'
до 10 млн. строк будет считаться рабочим состоянием?

PS: это для поиска
 

Wicked

Новичок
Patrul
если просто сделать выборку
select * from {одна большая таблица} where ... like '%..%'
, то оно будет все равно быстрее, чем если сделать много запросов вида
select * from {каждая из Ваших таблиц по порядку} where ... like '%..%'.

А поиск обычно делают по-другому.
 

Patrul

Новичок
с этим я согласен, и уже решил пихать все в одну таблицу.

Меня все таки интересует скорость like '%...%' справится ли он с таблицей хотя бы 10000 строк, если эта таблица будет около 300 мб?
 

Wicked

Новичок
Patrul
Не справится, так же, как не справился бы в случае с поиском по всем изначальным таблицам по очереди. Если же такой вот замысловатый поиск нужно ограничить только одной веткой, то базе будет намного легче, т.к. она сможет своими эффективными методами выделить только одну тему, и искать медленным like'ом только по 10-и записам.

Хотя, еще раз скажу, что like'ом нынче искать не принято. Может стоит почитать про полнотекстовый поиск, которые гораздо правильнее и эффективнее?
 

Patrul

Новичок
Всем спасибо. Ответы получил. Т.е. уложились в дурной голове ;)
 
Сверху