היום שיחקתי לייעל איטי SQL יישום של הסוג

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

איפה הבעיה עכשיו כאן – החלק האחרון '% מילת%’ וב אפילו יותר ספציפי תווים % לפני המילה, אשר עושה. תו כללי % ,לפני כל ערך, ישירות גורם לנו שאילתה ישירות לתוך איטי, כי בדרך זו את היישום עוצר אותנו להשתמש מדדי שדה. החלטות כמו תמיד, אבל לא תמיד ברור 😆 בסך הכל MySQL יש להם פתרון לבעיה זו חיפוש טקסט מלא שדה לאינדקס. איך לשנות את השדה יש ​​הרבה תיעוד בכתב, אבל חיפזון יתאר כיצד לשנות את הבקשה העליונה, כי נגיע דרמה קטנה ולבסוף. Sledka כשדה טקסט מלא רלוונטי למעלה, הבקשה חייבת להיות שינויים בסוג:

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

אז המבנה הוא מובן מאליו, ומצריך דיון מיותר. השאילתה הנ"ל תיכנס לתוקף, אם המילה, בשבילך להגיש בקשה לפחות 4 סימנים, ערך ברירת המחדל הוא, אם אתה רוצה לשנות חייב לציין את הערך, която желаете в my.cnf в частта [mysqld] הכרזה ft_min_word_len= 3 או 2, 1 не е добър избор очевидно 😉 . לאחר שתשנה את שרת ערך והפעלה מחדש mysql צורך לעשות תיקון על השולחנות שלך, על מנת האינדקס החדש ייכנסו לתוקף. עד כה הכל ברור: לבצע שינויים, לאפס, rebildvam אינדקסים לעשות בקשה וחוזר שלי 0 בדיקה עם הסדר 😀

SHOW VARIABLES

אני רואה שהערכים, ביקשתי בתוקף, rebildvam שוב אינדקסים – אותה תוצאה. 🙄 נעימה, מאוד לא נוח. מכאן ואילך זה התחיל לקלל גדול מגרד את המפתח מתחת לסככת 😀 שהייתה די, די מעניין. על כל, התחלתי לקרוא את התיעוד לא יודע באיזו דרך והגעתי בקטע מעניין

Such a technique works best with large collections (למעשה, זה היה מכוון ככה בזהירות). עבור טבלאות קטנה מאוד, חלוקת מילה אינה משקפת את השווי הסמנטי שלהם כראוי, ו מודל זה עשוי לפעמים להניב תוצאות מוזרות. לדוגמה, אם כי המילה "MySQL" נוכחת בכל שורה של טבלת מאמרים שראתה קודם, חיפוש אחר המילה לא מייצר תוצאות

ГРЕДА 😳 Дам табличката ми беше малка – עם זאת, היה מבחן. היישום שלנו ב שולחן גדול מעל 2 000 000 סדר הדברים שם ישנו. ובכן עכשיו בעיה ברורה. כדי לקבל החלטה ברורה, אזכיר בקצרה, תומך חיפוש טקסט מלא 3 מצב מתקדם BOOLEAN , ביטויים ו שפה טבעית כעבודה האחרונה כברירת מחדל. עבור מצבים יכול לבדוק תיעוד, אני אסביר 2-3 מילות BOOLEAN כי זה הוא המפתח. הוא תומך באופרטורים לוגיים כגון AND, אוֹ , לא וכן הלאה והוא יכול לעשות קסמים עם ביטויים פופולריים, יש אחד, אין וכו אחרים. לשמור וסמלים *, שהוא שווה ערך ל תו כללי % זה שימושי 😉, כאשר מונח החיפוש הוא פחות מאורך ft_min_word_len או מגשים קטנים ;). לפחות לי שולחן עם כ 100 כדי עושה עבודה מושלמת. השארתי רק לראות ושל בקשה:

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

הנה מגיע הרגע אם לאינדקס שלנו עובד עם תווים כלליים – התשובה היא שאני לא יודע. Принципно мисля, че да, защото не е казано друго в документацията, но в документацията очевидно не се казват или показват много неща 😀

משופר על ידי Zemanta

How PulseAudio works.

התמונה באמצעות ויקיפדיה

Днес най- накрая след една камара време реших да си купя още кабели за да си закача 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 }

משופר על ידי Zemanta