Arhiva

Posts Tagged ‘MySQL’

Optimizari MySql

Imi plac optimizarile! Cand nu dorim ca regasirea datelor sa dureze prea mult (eu nu doresc asta niciodata), putem sa tinem cont de urmatoarele:
1. Atunci cand creem tabela „storage engine” ul sa fie ales astfel incat operatiile pe care le vom executa dupa aceea sa fie cat mai rapide si sa se poata executa. Cele mai uzitate 2 stoarge engine sunt:
InnoDB- permite blocare la nivel de rand deci atunci cand avem multe accesari si actualizari concurente care pot bloca unele inregistrari, alte inregistrai fiind libere pot fi actualizate; permite foreign key si deci restrictii de integritate; permite lucru cu tranzactii si deci si rollback
MyIsaM-blocheaza la nivel de tabela dar e mai rapid pentru select, update, insert.
2. Trebuie stabilita lungimea corecta a campurilor. Nu alegi int atunci cand e bun si tinyint sau alegi varchar mai bine decat char.
3. Selecturile e bine sa aiba specificate exact campurile dorite. General valabila * intarzaie un pic rezultatele.
4. este indicat sa avem indecsi dupa coloanele implicate in clauzele „where” si „order”.
5. E bine cand se citesc date din mai multe tabele sa folosim clauza „join” si sa alegem datele direct din tabele. Mai exact Select din alt select, sau utilizarea subqueryurilor duce la intarzaierea raspunsului.
6. In Mysql clauza „group by” face si o sortare a datelor dupa capurile din clauza. daca nu ne dorim acea sortare trebuie sa adauga „order by NULL”.
7. Utilizati EXPLAIN SELECT!

Reclame

Exportul tabelelor din VFP9 in MySql

Pentru a importa in MySQL, datele, scrise cu diacritice, din tabelele vechi VFP:

1.Creez baza de date MySql „utf8_unicode_ci” si asa creez tabelele precum si campurile din tabelele in care importam datele.

2.In tabelele VFP mapez diacriticele. Secventa de program pentru un camp „nume_camp” este mai jos:
**literele mici
REPLACE ALL nume_camp WITH STRTRAN(nume_camp,”ã”,”|”)
REPLACE ALL nume_camp WITH STRTRAN(nume_camp,”â”,”@”)
REPLACE ALL nume_camp WITH STRTRAN(nume_camp,”î”,”#”)
REPLACE ALL nume_camp WITH STRTRAN(nume_camp,”ş”,”!”)
REPLACE ALL nume_camp WITH STRTRAN(nume_camp,”ţ”,”$”)
**majuscule
REPLACE ALL nume_camp WITH STRTRAN(nume_camp,”Ô,”^|”)
REPLACE ALL nume_camp WITH STRTRAN(nume_camp,””,”^@”)
REPLACE ALL nume_camp WITH STRTRAN(nume_camp,”Δ,”^#”)
REPLACE ALL nume_camp WITH STRTRAN(nume_camp,”Ş”,”^!”)
REPLACE ALL nume_camp WITH STRTRAN(nume_camp,”Ţ”,”^$”)
**ghilimele
REPLACE ALL nume_camp WITH STRTRAN(nume_camp,'”‘,”‘”)

Asta pentru ca a mi se importa corect diacriticele.

3.Dupa mapare copiez tabela fox in fisier tip CSV si o import in MySQL.
Eu am folosit wampserver si acolo am avut la dispozitie o optiune de import. Se poate si cu „LOAD FILE”. Pe volume mari de date optiunea nu merge si exportul datelor trebuie impartit in pachete mici. Dupa crearea CSVului trebuie sterse numele campurilor din primul rand. Daca nu merge importul, mai prelucrati cu ajutorul Excelului fisierul csv.

4.Dupa importul in MySQL updatez tabela astfel incat sa repunem diacriticele:

update nume_tabela set nume_camp=replace(replace(replace(nume_camp,”^|”,”Ă”),”^@”,””),”^#”,”Δ);
update nume_tabela set nume_camp=replace(replace(nume_camp,”^!”,”Ş”),”^$”,”Ţ”);
update nume_tabela set nume_camp=replace(replace(replace(nume_camp,”|”,”ă”),”@”,”â”),”#”,”î”);
update nume_tabela set nume_camp=replace(replace(nume_camp,”!”,”ş”),”$”,”ţ”);

**intai majusculele si dupa literele mici

Categorii:Uncategorized Etichete:, ,