Hoje eu joguei para otimizar um lento SQL tipo de solicitação

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

Onde está o problemático um momento aqui – a última parte palavra % ‘ %’ e até mesmo personagens de concretude maiores % antes da palavra, por isso fazemos.... Símbolo do wildcard % ,antes de qualquer valor, nosso aplicativo diretamente traduz diretamente em uma lenta, Porque desta forma o aplicativo para de nos para usar os índices da. Como sempre existem soluções, Mas nem sempre são clara 😆 geralmente MySQL Você tem uma solução para este problema com pesquisa de texto completo Indexação do. Como é a mudança do campo há muito escrito na documentação, Mas pressa vou descrever como mudar a solicitação superior, Porque vamos finalmente começar a um pouco de drama. Formam um bonito como aplicável ao campo de texto completo, a consulta precisa ser alterado no formulário:

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

Então, a estrutura é óbvia e não há nenhuma necessidade de discussão desnecessária. A consulta acima entrará em vigor, Se a palavra, para o qual você estiver fazendo uma solicitação pelo menos 4 o símbolo, Este é o valor padrão, Se você quiser modificá-lo, você deve especificar o valor, която желаете в my.cnf в частта [mysqld] com a declaração variavel= 3 ou 2, 1 не е добър избор очевидно 😉 . Depois que você alterar o valor e reinicie o servidor mysql-necessidade de fazer um reparo de tabelas, em ordem para a indexação de novo entra em vigor. Aqui está tudo limpo: Você muda, A reposição, índices de rebildvam e fazer o meu pedido e retorna 0 Verificação de linha com 😀

SHOW VARIABLES

Vejo que os valores, Pedi que entraram em vigor, índices de rebildvam novo – mesmo resultado. Ódio 🙄, muito desconfortável.. ОТ ТУК НАТАТЪК ЗАПОЧНА ЕДНО ГОЛЯМО И РУГАЕНЕ РОВЕНЕ ЗА КЛЮЧА ЗА БАРАКАТА 😀 СЕ КОЙТО ОКАЗА ДОСТА, ДОСТА ИНТЕРЕСЕН. КАТО ЦЯЛО, КАТО ЗАПОЧНАХ ДА ЧЕТА ДОКУМЕНТАЦИЯТА ЗА НЕ ЗНАМ КОЙ ПЪТ И СТИГНАХ ДО ЕДИН ИНТЕРЕСЕН ПАСАЖ

Such a technique works best with large collections (Na verdade, Ele foi cuidadosamente afinado desta maneira). Para tabelas muito pequenas, distribuição de palavra não reflete adequadamente seu valor semântico, e este modelo pode às vezes produzir resultados bizarros. Por exemplo, Embora a palavra "MySQL" está presente em cada linha da tabela de artigos mostrada anteriormente, uma busca pela palavra não produz nenhum resultado

ГРЕДА 😳 Дам табличката ми беше малка – Ainda era um teste. Em uma aplicativo grande Naših mesa com 2 000 000 ordem e as coisas lá estão dormindo. Bem já está claro o problema. Para deixar bem claro a solução, Eu vou mencionar brevemente, Esse apoio de pesquisa de texto completo 3 Modos avançados BOOLEAN , EXPRESSÕES E LINGUAGEM NATURAL como as últimas obras por padrão. Sobre os modos diferentes que você pode verificar a documentação, Vou explicar com 2-3 palavras para BOOLEAN, porque é a chave. Suporta operadores lógicos do tipo e, OU , Não, e assim por diante e pode fazer um pouco de magia com as frases de busca, para ter um, Existe outra, etc.. Suportes e símbolo *, Isso é o equivalente de caracteres curinga % 😉 é útil, Quando o termo de pesquisa é o comprimento da variavel ou bandejas pequenas ;). Pelo menos para mim na mesa com sobre 100 a linha está fazendo um trabalho perfeito. A única coisa que resta para ver e o aplicativo concluído:

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

Agora vem um tempo de indexação de obras com nos caracteres curinga – a resposta é que não sei. Принципно мисля, че да, защото не е казано друго в документацията, но в документацията очевидно не се казват или показват много неща 😀

Reforçada por 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 }

Reforçada por Zemanta