Данас сам играо за оптимизацију спор СКЛ Примена рода

SELECT * FROM 'table' WHERE `field` LIKE '%word%'

Где је проблем сада овде – последњи део "% реч%’ а чак више специфичних знакова % испред ријечи, који до. џокер симбол % ,пре било какве вредности, директно нас чини упит директно у спор, јер се на тај начин апликација нас престане да користи индицес Фиелд. Одлуке као и увек, али не увек јасно 😆 Генерално МиСКЛ Они имају решење за овај проблем Фуллтект сеарцх индексирање поље. Како промена на терену има много писане документације, али журба ће описати како да промените горњи захтев, јер ћемо доћи до малог драме коначно. Следка као важећим ФуллТект поље изнад, Пријава мора бити промена у врсти:

SELECT * FROM `table` WHERE MATCH (field) AGAINST ('word')

Дакле, структура је очигледна и не треба непотребно дискусију. Наведени упит ће ступити на снагу, Ако је реч, за направите захтев најмање 4 симболи, Дефаулт вредност је, ако желите да измените мора да наведе вредност, която желаете в my.cnf в частта [МиСКЛ сервер] декларација фт_мин_ворд_лен= 3 или 2, 1 не е добър избор очевидно 😉 . Када промените вредности и поновно покретање МиСКЛ сервер-а потребу да ради поправке на својим столовима, налог за новог индексирање ступити на снагу. До сада све јасно: направити промене, ресетовање, ребилдвам индексе и радити свој захтев и повратак 0 Провера са циљем 😀

SHOW VARIABLES

Видим да су вредности, Ја сам питао на снази, ребилдвам агаин индексе – isti резултат. непријатан 🙄, веома непријатно. Од сада па надаље је почео велики псовке и гребање кључ у шупи 😀 који је био прилично, веома занимљив. у целости, Почео сам да читам документацију, не знам који пут и дошли до занимљивих пролаз

Such a technique works best with large collections (заправо, је пажљиво подешена на овај начин). За врло мале табеле, дистрибуција реч не одражава адекватно њихов семантички вредности, и овај модел може понекад произвести бизарне резултате. На пример, иако је реч "МиСКЛ" је присутан у сваком реду табеле чланака раније приказаној, потрага за реч даје никакве резултате

ГРЕДА 😳 Дам табличката ми беше малка – Ипак, то је био тест. Наша апликација у великим столом преко 2 000 000 ред и тамо ствари спавао. Па сада јасно Проблем. Да би јасну одлуку, Укратко ћу поменути, који подржава цјеловито текстуално 3 напредни режим БООЛЕАН , ЕКСПРЕССИОНС i натурал лангуаге као последњи рад по дифолту. За режима може да провери документацију, Ја ћу објаснити 2-3 Боолеан речи јер је то кључ. Он подржава логичке операторе су и, ИЛИ , НЕ и тако даље и могу да неку магију са популарним фраза, има један, ниједна друга итд. Одржавају и симболи *, што је еквивалентно џокер симбол % То је корисно 😉, када је термин за претрагу мања од дужине фт_мин_ворд_лен или мале посуде ;). Барем мени сто са око 100 наредба ради савршено посао. Остављајући само види и завршио захтев:

SELECT * FROM `table` WHERE MATCH (field)
AGAINST ('*word*' IN BOOLEAN MODE)

Долази тренутак да наша индексирање ради са вилдцард знаковима – одговор је да не знам. Принципно мисля, че да, защото не е казано друго в документацията, но в документацията очевидно не се казват или показват много неща 😀

Potpomognuto Zemanta

How PulseAudio works.

Image via Wikipedia

Днес най- накрая след една камара време реших да си купя още кабели за да си закача 5.1 аудио системата ми пълноценно. Досега я ползвах със нормален стерео кабел и след това системата сама си правеше деление на аудио каналите. Което не е никак добре. Сега вече за всеки канал си има отделен кабел и звукът е доста по чист (естествено), по плътен а на филмите усещането е подобрено много кратно. Имаше няколко малки драми които се оправят относителни интуитивно. Основната драма беше, че звукът тръгна само в front колоните без буфер център или задните след като пренастроих звуковата схема на Gnome да е 5.1 . В повечето плеъри имам опция за настройка в alsa часта за колко канално да е аудиото но има програми в които отсъствува такава възможност като да речем adobe flash player. Първоначалната ми идея беше просто да пренастроя .asoundrc като задам параметри да дублира звукът по всички каналирешение с което не се гордея защото не го обмислих изобщо. Конфигурацията тривиална :

pcm.!default {
type plug
slave.pcmsurround51
slave.channels 6
route_policy duplicate
}

С нея нещата си дойдоха на място докато не осъзнах че alsa може да обработва само по 1 процес и докато тои не приключи да я ползва друг не може. 😳 Неприятно но факт бях забравил времената в който слушаш или player или youtube и ако едното ти омръзне трябва да затвориш програмата, че да ползваш другата апликация. Което веднага ми подсказа къде е истинския корен на нещатаконфигурацията на pulseaudio сървъра. Pulseaudio е най грубо казано прокси сървър който обработва информацията между аудио хардуера и аудио софтуера който иска да го ползва. Система която с години се доказа много кратно. При нея конфигурацията се намира в /etc/pulse/daemon.conf. По подразбиране всичко е закоментирано с ; така че ако не сте праивли промени може направо смело да добавите следните редове накрая на файлът:

enable-lfe-remixing = yes

default-sample-rate = 48000
default-sample-channels = 6

Имената на опциите са очевидни задаваме стойноста на колко канално аудио ще сме малък тунинг на стандартния битрейт и разрешване на lfe ремиксирането. След това остава да рестартирате alsa и pulseaudio с

sudo /etc/init.d/alsa-utils restart && pulseaudio -k

От тук нататък за мен остана само а се наслаждавам на вече по доброто аудио.

edit: .asoundrc трябва да е със съдържание за да нямате проблеми със skype и някой други апликации

pcm.pulse {type pulse }
ctl.pulse { type pulse }

Potpomognuto Zemanta