Wszystko
Najnowsze
Archiwum
- 1
Komentarz usunięty przez moderatora
- 1
@RomantycznyRoman: MySQL został zaprojektowany tak by banalne rzeczy robiło się łatwo i przyjemnie, bardziej zaawansowane robi się trudno lub jest to niemożliwe. Jeszcze zatęsknisz do takich bajerów jak CTE czy window functions, nie bój nic. Że nie wspomnę o takich głupotach jak integralność danych, indeksy częściowe i indeksy na funkcjach. No i o ile rozwiązanie z CASE jest standardowe to jeśli się uprzesz to możesz użyć CHARINDEX.
- 0
@RomantycznyRoman: Ciekawe, osobiście podszedł bym do tego inaczej, warto będzie zapamiętać. Niestety działa tylko na jeden znak (lub ciąg kilku znaków) ale przynajmniej nie jest ograniczone brakiem generowania serii w mysql.
- 0
@plushy: Też kombinowałem inaczej, ale to mnie urzekło prostotą (no bo w gruncie rzeczy prościej się nie da). Plus taki, że sam se wyspecyfikowałem co chcę w stringu i mam wszędzie ładne, spójne separatory. I to rozwiązanie spełnia moje wymagania w 100% :)
To teraz o utrzymaniu bazy sql - gotowa procedura robiąca to:
Here’s a very simple stored procedure I use to run some maintenance on MySQL tables. It allows you to run OPTIMIZE TABLE or ANALYZE TABLE on all (or most) tables in a MySQL database.
Wypada napisać, że jeszcze jej nie odpalałem:)
Wklejam,
Here’s a very simple stored procedure I use to run some maintenance on MySQL tables. It allows you to run OPTIMIZE TABLE or ANALYZE TABLE on all (or most) tables in a MySQL database.
Wypada napisać, że jeszcze jej nie odpalałem:)
Wklejam,
- 1
@RomantycznyRoman: Zawsze można dłuższy czas ustawić. Zapytanie o statystyki tabel jest na pewno jednym z prostszych i wykonuje się niemal błyskawicznie więc nie powinno być jakimś strasznym obciążeniem sprawdzanie tego. Jak już będziemy oszczędzać na takich rzeczach to pewnie następnym krokiem będzie wyłączenie pk i fk
- 1
@plushy: No właśnie sądzę, że nie. Nie ma - według mnie - sensu jakiekolwiek zbędne obciążanie (jakiekolwiek) bazy produkcyjnej w momencie sieczki generowanej przez userów. I sądzę, że można zrezygnować z analizowania w tym czasie . Ale to oczywiście kwestia priorytetów i dokładnych zadań, jakie przed tą bazą stoją (liczby requestów, etc.)
No to wrzucam pierwszego kejsa - poniżej skrypt procedury
CREATE PROCEDURE
(IN YY varchar(2))
CREATE PROCEDURE
Add_new_XX(IN YY varchar(2))
- 1
@Aleks7: Czym http://pastebin.com/D7TMXShs . W wywołaniu procedury musisz podać parametr, bo o tym zapomniałem:) call AddnewXX ("YY")
- 1
@RomantycznyRoman: Ciekawe. To ja może jeszcze dodam że do powtarzalnego tworzenia dużej ilości tabel możemy użyć użyć CREATE TABLE foo LIKE bar, nawet indeksy klonuje.
Chcecie, żebym wrzucił info o dynamic mysql? To ciekawy temat? Samo zagadnienie jest dość złożone więc nie chciałbym przeszarżować:)
#romanisql #programowanie #sql
#romanisql #programowanie #sql
- 1
@RomantycznyRoman: Dobra, to ja już nie wiem czy gadamy o prepeared statements czy procedurach składowanych.
- 1
O obu rzeczach.
1. Masz procedurę (sp)
2. Masz w niej ds (dynamic sql)
3.
1. Masz procedurę (sp)
2. Masz w niej ds (dynamic sql)
3.
Wow! Mysql zaskakuje mnie coraz bardziej - i to pozytywnie!
Takie cuś: SELECT NOW() + INTERVAL 1 DAY albo SELECT NOW() + INTERVAL 1 HOUR działa wyśmienicie. A pamiętam, że strasznie dużo chrzanienia było z tym w tsqlu. Fajne.
#romanisql #programowanie #sql
Takie cuś: SELECT NOW() + INTERVAL 1 DAY albo SELECT NOW() + INTERVAL 1 HOUR działa wyśmienicie. A pamiętam, że strasznie dużo chrzanienia było z tym w tsqlu. Fajne.
#romanisql #programowanie #sql
- 3
@RomantycznyRoman: now() zwraca aktualną godzinę + interval 1 day, czyli aktualna godzina powiększona o 1 dzień?
- 1
@RomantycznyRoman: @Cybe: kolejny cool-hack to użycie tego w WHERE
I na dokładkę funkcja locate, czyli odpowiednik mssqlowego charindex:
http://dev.mysql.com/doc/refman/5.6/en/string-functions.html#function_locate
#romanisql #programowanie #sql
http://dev.mysql.com/doc/refman/5.6/en/string-functions.html#function_locate
#romanisql #programowanie #sql
Kilka linków o wyłapywaniu błędów w mysqlu
http://dev.mysql.com/doc/refman/5.6/en/signal.html
http://dev.mysql.com/doc/refman/5.6/en/declare-handler.html
http://www.devshed.com/c/a/MySQL/Error-Handling/
http://dev.mysql.com/doc/refman/5.6/en/signal.html
http://dev.mysql.com/doc/refman/5.6/en/declare-handler.html
http://www.devshed.com/c/a/MySQL/Error-Handling/
A propos last insertów warto też wiedzieć to:
http://dba.stackexchange.com/questions/21181/is-mysqls-last-insert-id-function-guaranteed-to-be-correct
#romanisql #programowanie #sql
http://dba.stackexchange.com/questions/21181/is-mysqls-last-insert-id-function-guaranteed-to-be-correct
#romanisql #programowanie #sql
Last insert id w mysql: http://dev.mysql.com/doc/refman/5.6/en/information-functions.html#function_last-insert-id
I w mssql scope_identity: http://msdn.microsoft.com/pl-pl/library/ms190315.aspx
#romanisql #programowanie #sql
I w mssql scope_identity: http://msdn.microsoft.com/pl-pl/library/ms190315.aspx
#romanisql #programowanie #sql
Ciekawostka - w mysql, w przeciwieństwie do mssql jest funkcja timediff(), znajdująca zastosowanie np. w takim zapytaniu: timediff(max(RunDate), min(RunDate)), zwracająca: '00:00:07'. Nie znalazłem opisu tejże funkcji w oficjalnej dokumentacji (może źle patrzyłem) - to wrzucam:P
#romanisql #programowanie #sql
#romanisql #programowanie #sql
- 2
- 1
@mariuzpl: Wystarczy wyłączyć UAC ;)
Jako że przeniosłem już cały interes na VPSa, to wrzutka o administracji mysqlem
Shrink database w mysql.
http://dba.stackexchange.com/questions/24942/how-do-i-shrink-the-innodb-file-ibdata1-without-dumping-all-databases
http://stackoverflow.com/questions/3456159/how-to-shrink-purge-ibdata1-file-in-mysql
Shrink database w mysql.
http://dba.stackexchange.com/questions/24942/how-do-i-shrink-the-innodb-file-ibdata1-without-dumping-all-databases
http://stackoverflow.com/questions/3456159/how-to-shrink-purge-ibdata1-file-in-mysql
- 2
@RomantycznyRoman: a propos VPSów, gdyby kto polecam http://www.lowendbox.com/ - mają najlepsze promocje z całego świata (np. $7 za 2+1 GB ram, 3TB transferu)
Can I create view with parameter in MySQL?
http://stackoverflow.com/questions/2281890/can-i-create-view-with-parameter-in-mysql
#romanisql #programowanie #sql
http://stackoverflow.com/questions/2281890/can-i-create-view-with-parameter-in-mysql
#romanisql #programowanie #sql
- 1
@relik39: Dla mysqla?
http://dev.mysql.com/doc/refman/5.6/en/commit.html
http://dev.mysql.com/doc/refman/5.6/en/glossary.html#glos_autocommit
I spacerek po powiązanych
http://dev.mysql.com/doc/refman/5.6/en/commit.html
http://dev.mysql.com/doc/refman/5.6/en/glossary.html#glos_autocommit
I spacerek po powiązanych
To jeszcze opis zmiennej thread_stack, która mi wczoraj dała do zrozumienia, że wypada ją ustawić;)
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_thread_stack
http://technical-qa.blogspot.com/2010/12/mysql-problem-thread-stack-overrun.html - i wpis o tym, gdzie ją ustawić. Ja zrobiłem to z poziomu Workbencha - z poziomu sql dostawałem info, że zmienna jest tylko do odczytu:)
#romanisql #programowanie #sql
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_thread_stack
http://technical-qa.blogspot.com/2010/12/mysql-problem-thread-stack-overrun.html - i wpis o tym, gdzie ją ustawić. Ja zrobiłem to z poziomu Workbencha - z poziomu sql dostawałem info, że zmienna jest tylko do odczytu:)
#romanisql #programowanie #sql
@RomantycznyRoman: Znaczy ustawiona jest domyślnie z tego co tam pisze. Rozumiem, że zmieniłeś jej wartość? Na jaką? Dlaczego właśnie na taką wartość?
- 3
@anonim1133: Jest ustawiona domyślnie z parametrami: 192KB (256KB for 64-bit systems), a to za mało na odpalenie procedury mega procedury, którą napisałem do wygenerowania danych - po około 40 iteracjach dostawałem error thread stack overrun (błąd skutkuje przerwaniem wykonywania zapytania) . Ustawiłem wartość czterokrotnie większą niż domyślna (wychodząc z założenia, że mogę sobie na to pozwolić w trakcie prac na instancji testowej - na produkcji zoptymalizowałbym procedurę.). Co ważne sama
Na razie robię sobie i ładuję strukturę głównej tabeli bazy, którą bez przerwy będzie męczył klient. Testy wydajnościowe wykonam na 100K rekordów i jak mi przez przypadek wyjdzie, że w moim zastosowaniu data w int jest wolniejsza - to dam wam znać (swoją drogą ciekawy task).
Jak już przy optymalizacji jesteśmy, będę testował wydajność zapytań z cache i bez cache (a nie jest to wcale ewidentne). Na rozgrzewkę wrzucam kilka linków na ten
Jak już przy optymalizacji jesteśmy, będę testował wydajność zapytań z cache i bez cache (a nie jest to wcale ewidentne). Na rozgrzewkę wrzucam kilka linków na ten
- 1
InnoDB ofcrz
- 2
Trochę na boku - generatory testowych danych:
http://www.webresourcesdepot.com/test-sample-data-generators/
#romanisql #programowanie
http://www.webresourcesdepot.com/test-sample-data-generators/
#romanisql #programowanie
Trochę na boku - generatory testowych danych:
http://www.webresourcesdepot.com/test-sample-data-generators/
#romanisql #programowanie
http://www.webresourcesdepot.com/test-sample-data-generators/
#romanisql #programowanie
Miało być o indexach na varcharach, ale znalazłem takie cuś. Może się przyda
http://stackoverflow.com/questions/1031312/how-to-speed-up-select-count-with-group-by-and-where/1556344#1556344
#romanisql #sql #mysql #programowanie
http://stackoverflow.com/questions/1031312/how-to-speed-up-select-count-with-group-by-and-where/1556344#1556344
#romanisql #sql #mysql #programowanie
Siema! Siedzę teraz nad dość konkretną optymalizacją SQLową (mysql) i jeszcze przez kilka dni będę dłubał w kilometrach procedur... W związku z tym będę też przerzucał internet w każdą możliwą stronę. Czy wrzucać tu od czasu do czasu jakieś linki do ciekawych informacji, tematów optymalizacyjnych, etc.? Warto? Ktoś to będzie czytał?
#sql #mysql #programowanie #romanisql
#sql #mysql #programowanie #romanisql
- 5
- 4
@eDameXxX: :) Zwolniłem się z roboty etatowej, żeby móc zrobić coś swojego. Dogadałem się z ludźmi, którzy potrafią to, czego ja nie potrafię i piszemy. Ergo - nie mam stawki roboczo-godzinowej:)








http://pb-bi-solutions.pl/business-intelligence/artykuly/hurtownie-danych-wolnozmiennosc-scd.html
#romanisql #programowanie #sql