PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (36): В начало « ... 3 4 5 6 [7] 8 9 10 11 ... » В конец

> Найдено сообщений: 538
event Отправлено: 10 Февраля, 2015 - 00:00:08 • Тема: HELP • Форум: Вопросы новичков

Ответов: 8
Просмотров: 96
KingStar, все спасибо. Теперь все летает, как самолет прям. Подмигивание
event Отправлено: 09 Февраля, 2015 - 23:43:35 • Тема: HELP • Форум: Вопросы новичков

Ответов: 8
Просмотров: 96
KingStar, понял. Теперь бы еще знать как быстро переганать?

А то у меня идея сделать это PHP-циклом, с одной таблицы (myisam) переписывать уже в другую (innodb) или есть варианты попроще?
event Отправлено: 09 Февраля, 2015 - 23:39:38 • Тема: HELP • Форум: Вопросы новичков

Ответов: 8
Просмотров: 96
KingStar, Memory точно нет.

А InnoDB что быстрее? Я читал что MyISAM быстрее чем InnoDB, но в InnoDB лучшее хранение данных, более безопасное.
event Отправлено: 09 Февраля, 2015 - 23:35:08 • Тема: HELP • Форум: Вопросы новичков

Ответов: 8
Просмотров: 96
KingStar, MyISAM
event Отправлено: 09 Февраля, 2015 - 23:28:40 • Тема: HELP • Форум: Вопросы новичков

Ответов: 8
Просмотров: 96
Привет.
Есть таблица на 1 млн. записей.

Есть SELECT:
PHP:
скопировать код в буфер обмена
  1. $result = $mysqli->query("SELECT id, name FROM lists WHERE categoryid = " . $categoryid . " ORDER BY id DESC LIMIT 100");


Таблица:
Нажмите для увеличения


На поля categoryid, textid установлены идексы.

Но SELECT долго делается, хотя железо хорошее. Почему так? Помогите ускорить выборку.

Таблица весит вообще фигню, 111 мегабайт.
event Отправлено: 09 Февраля, 2015 - 10:45:28 • Тема: Парсер • Форум: Вопросы новичков

Ответов: 7
Просмотров: 229
Подскажите плиз.
(Добавление)
_http://www[dot]edu[dot]ru/index.php?page_id=5&a[dot][dot][dot]3&ntype=nuke - ссылка на новость
event Отправлено: 06 Февраля, 2015 - 15:36:07 • Тема: Поиск по 1 млн. записей • Форум: Вопросы новичков

Ответов: 5
Просмотров: 151
LIME, спасибо, индекс сделал, все стало лучше, но все равно медленно. Как можно еще ускорить это дело?


Нажмите для увеличения
event Отправлено: 06 Февраля, 2015 - 14:53:49 • Тема: Парсер • Форум: Вопросы новичков

Ответов: 7
Просмотров: 229
Привет.

Помогите составить регулярку чтобы парсила описание новости - http://www[dot]edu[dot]ru/index.php?page[dot][dot][dot]3&ntype=nuke

PHP:
скопировать код в буфер обмена
  1. $site = file_get_contents("http://www.edu.ru/index.php?page_id=5&topic_id=19&sid=32983&ntype=nuke");
  2.  
  3. preg_match('#<span style="font-size: small">(.*)</span>#', $site, $xxx);
  4.  
  5. echo var_dump($xxx);


Пробую как-то так не выходит.

Заранее спасибо.
event Отправлено: 05 Февраля, 2015 - 12:43:17 • Тема: Поиск по 1 млн. записей • Форум: Вопросы новичков

Ответов: 5
Просмотров: 151
LIME, можно подробнее?
event Отправлено: 05 Февраля, 2015 - 04:04:28 • Тема: Поиск по 1 млн. записей • Форум: Вопросы новичков

Ответов: 5
Просмотров: 151
Привет.
Такой вопрос, как сделать быстрый поиск по 1 млн. записей в базе mysql? А то ищет очень долго...

Поиск делаю так:

PHP:
скопировать код в буфер обмена
  1. $result = $mysqli->query("SELECT id, name FROM texts WHERE categoryid = ". $categoryid . " LIMIT 100") or sqlerr(__FILE__, __LINE__, $mysqli->error);
  2.  
  3. while($row = $result->fetch_array()) {
  4.          
  5.                  echo "<li>- <a href=\"articles.php?categoryid=" . $row['id'] . "\">" . $row['name'] . "</a></li>";
  6.                  
  7. }


Всегда ищет по categoryid, там всегда число (id категории).

Заранее спасибо.
event Отправлено: 03 Февраля, 2015 - 19:28:40 • Тема: Как ускорить/оптимизировать код? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 134
RickMan пишет:
В таблице links посмотреть является ли ключом categoryid. Для более быстрого поиска.


А как призначить этот ключ?
event Отправлено: 03 Февраля, 2015 - 13:44:35 • Тема: Таблица MySQL • Форум: Вопросы новичков

Ответов: 6
Просмотров: 152
GoDr, все, получилось. Спасибо!

Такой вопрос, как обслуживать базу когда много записей? У меня 400к и никак не могу добавить еще одну ячейку...
event Отправлено: 03 Февраля, 2015 - 00:41:30 • Тема: Таблица MySQL • Форум: Вопросы новичков

Ответов: 6
Просмотров: 152
Мелкий, скрипт сломал.

#144 - Table '.\site\texts' is marked as crashed and last (automatic?) repair failed

Вот ошибка... чего делать....... Растерялся
(Добавление)
GoDr, поставил, подключился. Все функции вижу, а от как отремонтировать?
event Отправлено: 02 Февраля, 2015 - 15:43:17 • Тема: Как ускорить/оптимизировать код? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 134
Привет.
Ребят, как можно ускорить/оптимизировать этот код?

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.  
  4. $start = microtime(true);
  5.  
  6. require_once("system.php");
  7.  
  8. error_reporting( E_ERROR );
  9.  
  10. $f = fopen("1.txt", "r");
  11.  
  12. $cat = fgets($f);
  13.  
  14. fclose($f);
  15.  
  16. if($cat == 65) {
  17.         die("END!");
  18. }
  19.  
  20. $ccc = get_row_count("links WHERE categoryid = '" . $cat . "'");
  21.  
  22. if($ccc == 0) {
  23.        
  24. $ff= fopen("1.txt",'w');
  25. fputs($ff, $cat + 1);
  26. fclose($ff);
  27.  
  28. die('<meta http-equiv="refresh" content="0;URL=parser.php" />');
  29.  
  30. }
  31.  
  32. $result = $mysqli->query("SELECT * FROM links WHERE categoryid = '" . $cat . "' LIMIT 100") or sqlerr(__FILE__, __LINE__, $mysqli->error);
  33.  
  34. $urls = array();
  35.    while($row = $result->fetch_assoc()) {
  36.         $urls[] = $row['link'];
  37. }
  38.  
  39.  
  40. $multi = curl_multi_init();
  41. $channels = array();
  42.  
  43. foreach ($urls as $url) {
  44.         $url = "http://studopedia.net" . $url;
  45.     $ch = curl_init();
  46.     curl_setopt($ch, CURLOPT_URL, $url);
  47.     curl_setopt($ch, CURLOPT_HEADER, false);
  48.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  49.     curl_multi_add_handle($multi, $ch);
  50.  
  51.     $channels[$url] = $ch;
  52. }
  53.  
  54. $active = null;
  55. do {
  56.     $mrc = curl_multi_exec($multi, $active);
  57. } while ($mrc == CURLM_CALL_MULTI_PERFORM);
  58.  
  59. while ($active && $mrc == CURLM_OK) {
  60.     if (curl_multi_select($multi) == -1) {
  61.         continue;
  62.     }
  63.  
  64.     do {
  65.         $mrc = curl_multi_exec($multi, $active);
  66.     } while ($mrc == CURLM_CALL_MULTI_PERFORM);
  67. }
  68.  
  69. foreach ($channels as $value => $channel ) {   
  70.  
  71. $st = curl_multi_getcontent($channel);
  72. $value = str_replace("http://studopedia.net", "", $value);
  73.  
  74.  
  75. $site = curl_multi_getcontent($channel);
  76.  
  77. preg_match('#<h1>(.+?)</h1>#i', $site, $name);
  78.  
  79. $name = strip_tags($name[1]);
  80.  
  81. $name = iconv("WINDOWS-1251","UTF-8", $name);
  82.  
  83. preg_match("#</noindex>\s+</td></tr></table>(.*?)</center><hr>#si", $site, $tmp);
  84.      
  85. $result = preg_replace('#<noindex.*?</noindex>|<script.*?</script>|<ins.*?</ins>|<!--.*?-->#si', '', $tmp[1]);
  86.      
  87. $text = trim($result);
  88. $text = str_replace("<p>&nbsp;</p>", "", $text);
  89. $text = str_replace("<p>&nbsp;</p>", "", $text);
  90. $text = str_replace("<br>", "", $text);
  91. $text = str_replace("<center>", "", $text);
  92.  
  93. $text = iconv("WINDOWS-1251","UTF-8", $text);
  94.  
  95. preg_match_all('#<img.*src="(.*)".*>#isU', $text, $urlsex);
  96.  
  97. foreach($urlsex[1] as $val) {
  98.         $urlsex_end .= $val . "\n";
  99. }
  100.  
  101. $value = trim($value);
  102.  
  103. $result = $mysqli->query("INSERT INTO texts (name, text, image_urls, categoryid, link) VALUES (" . implode(", ", array_map("sqlesc", array($name, trim($text), trim($urlsex_end), $cat, $value))) . ")") or sqlerr(__FILE__, __LINE__, $mysqli->error);
  104.  
  105. $mysqli->query("DELETE FROM links WHERE link = " . sqlesc(trim($value))) or sqlerr(__FILE__, __LINE__, $mysqli->error);
  106.  
  107. curl_multi_remove_handle($multi, $channel);
  108.  
  109. }
  110.  
  111.  
  112. #echo "Осталось обработать: " . $ccc . " записей " . $cat . " категории.";
  113.  
  114. #echo '<br /><br />Время выполнения скрипта: '.(microtime(true) - $start).' сек.';
  115.  
  116. sleep(1);
  117.  
  118. ?>
  119.  
  120. <meta http-equiv="refresh" content="0;URL=parser.php" />


Может где-то присутен говно-код? и т.д., тыкните что может решать на скорость
event Отправлено: 01 Февраля, 2015 - 23:06:09 • Тема: Таблица MySQL • Форум: Вопросы новичков

Ответов: 6
Просмотров: 152
Как починить таблицу с 400к записями? А то не хочет она через phpmyadmin чинится (REPAIR TABLE texts)?

Что делать? Какие варианты?

Страниц (36): В начало « ... 3 4 5 6 [7] 8 9 10 11 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB