Mysql
 sql >> база данни >  >> RDS >> Mysql

Мога ли да предвидя колко голям ще бъде моят индекс на Zend Framework? (и някои бързи въпроси:)

SOLR е основно Apache Tomcat контейнер, който внедрява REST интерфейс за запитване на индекс на Apache Lucene. Да, трябва да можете да стартирате Java приложение на вашия уеб сървър. Това е проблем, който трябва да решите с вашия хостинг доставчик.

Клиентите, които използват вашето уеб приложение, не трябва да изпълняват Java. Вашето PHP приложение може да направи REST заявка към услугата SOLR и да форматира резултатите в HTML. Клиентът вижда само HTML изхода; никога не трябва да знае, че данните са дошли от услуга, внедрена в Java.

Zend_Search_Lucene е чиста PHP реализация, която трябва да работи идентично с Apache Lucene. Решението на Zend дори използва идентичен индексен файлов формат. Така че по отношение на съхранение те трябва да са равни.

Използвах Java Lucene, за да индексирам дъмпа на данни на StackOverflow (октомври 2009 г.). Индексирах 1,5 милиона реда, включително около 1 гиг текстови данни. Индексът на Lucene беше 1323 MB, докато индексът на MySQL FULLTEXT на същите данни беше само 466 MB.

Използване на SQL LIKE предикати вместо всяко решение за пълнотекстово индексиране не изисква място, разбира се, защото така или иначе не може да използва конвенционален индекс. Но в моите тестове използвам LIKE беше около 200 пъти по-бавно от Java Lucene, което от своя страна беше с около 40% по-бавно от MySQL FULLTEXT индекс за същите данни.

Вижте скорошната ми презентация за решенията за пълнотекстово индексиране с MySQL:

http://www.slideshare.net/billkarwin /practical-full-text-search-with-my-sql

Не е изненадващо, че не може да се сравни с производителността и мащабируемостта на технологията Java Lucene. Предимството на PHP като език е повишаване на ефективността на разработка, а не ефективността по време на изпълнение.

актуализация: Току-що се опитах да създам индекс с помощта на Zend_Search_Lucene . Създаването на индекс е много по-бавно с PHP, отколкото с технологията Java Lucene, така че индексирах само 10 000 документа. Това отне почти 15 минути, което ще отнеме около 36 часа индексирането на цялата колекция. Сравнете това с Java Lucene, която в моя тест индексира пълната колекция от 1,5 милиона документа за по-малко от 7 минути.

Размерът на индекса, който създадох с Zend_Search_Lucene е 8,75 MB. Екстраполирайки това 150x, смятам, че пълният индекс ще бъде 1312,5 MB. Така че заключавам, че Zend_Search_Lucene създава индекс с приблизително същия размер като индекса, произведен от Java Lucene. Това е според очакванията.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Буквено-цифрово подреждане по в Mysql

  2. Твърде много маси; MySQL може да използва само 61 таблици в обединение

  3. SQL заявка за изчисляване на баланса по сметката

  4. Как да сортирам списък с масиви в зигзаг в PHP?

  5. Синтактична грешка на MySQL при изпълнение на SQL заявка