php에서 PDO를 통해

prepare / execute / fetch를 통해 수행하는 것과

query / fetch를 하는게 있길래 찾아보니..


얘는 엄밀하게 mysql의 지원기능이라고 해야 하려나?

mysql> SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';

mysql> PREPARE stmt2 FROM @s;

mysql> SET @a = 6;

mysql> SET @b = 8;

mysql> EXECUTE stmt2 USING @a, @b;

+------------+

| hypotenuse |

+------------+

|         10 |

+------------+

mysql> DEALLOCATE PREPARE stmt2; 

[링크 : https://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html]


prepare는 mysql 내부에서 치환을 통해 어떠한 수행을 할 수 있는 일종의 매크로 같은 개념으로

확장해서 사용할 수 있도록 하는 건데..


성능상의 차이가 없다면.. php에서 query문을 직접 변수 치환해서 하는게 편할수도 있을테니

어느게 좋고 어느게 나쁘다 라고 하긴 애매 할 듯.

관리적인 측면에서는 쿼리문을 쫘악 정리하고 변수 치환만 해서 쓰도록

php에서 변수 대입을 하던 mysql 에서 prepare로 하던 똑같으니까?


[링크 : http://www.codeigniter-kr.org/bbs/view/qna?idx=9891]

[링크 : http://stackoverflow.com/questions/4700623/pdos-query-vs-execute]


'프로그램 사용 > mysql & mariaDB' 카테고리의 다른 글

mysql 테이블 내 일정 문자열 치환하기  (0) 2017.01.26
mysql 암호화 방법들...?  (0) 2017.01.16
mysql mariadb 호환성  (0) 2017.01.12
mysql 트랜잭션  (0) 2017.01.12
mysql blob - binary large object  (0) 2017.01.12
Posted by 구차니

머.. 공식 사이트 도움말이니 맞겠지?

일단은 5.1 끼리는 바이너리 레벨에서 호환되지만

환경설정파일에 [mysql]을 [mariadb] 로는 수정을 해야 한다 정도?


[링크 : https://mariadb.com/kb/ko/mariadb-mysql/]

[링크 : https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-compatibility/]

'프로그램 사용 > mysql & mariaDB' 카테고리의 다른 글

mysql 암호화 방법들...?  (0) 2017.01.16
mysql prepare + execute 와 query 차이점  (0) 2017.01.15
mysql 트랜잭션  (0) 2017.01.12
mysql blob - binary large object  (0) 2017.01.12
mysql 변수별 사이즈  (0) 2017.01.12
Posted by 구차니

innodb에서 적용가능(MyISAM은 적용 불가)


query로 처리

랩핑된 함수는 없는 듯?

[링크 : http://php.net/manual/en/ref.mysql.php]

[링크 : http://stackoverflow.com/questions/2708237/php-mysql-transactions-examples]

[링크 : http://recoveryman.tistory.com/187]


mysqli 클래스 에도 지원은 하네

[링크 : http://php.net/manual/en/book.mysqli.php]

[링크 : http://php.net/manual/en/mysqli.begin-transaction.php]

[링크 : http://php.net/manual/en/mysqli.commit.php]

[링크 : http://php.net/manual/en/mysqli.rollback.php]


다만 PDO를 통하면 클래스 메소드로 지원을 하도록 랩핑한 듯?

[링크 : http://php.net/manual/en/book.pdo.php]

[링크 : http://php.net/manual/en/pdo.begintransaction.php]

[링크 : http://php.net/manual/en/pdo.commit.php]

[링크 : http://php.net/manual/en/pdo.rollback.php]

'프로그램 사용 > mysql & mariaDB' 카테고리의 다른 글

mysql prepare + execute 와 query 차이점  (0) 2017.01.15
mysql mariadb 호환성  (0) 2017.01.12
mysql blob - binary large object  (0) 2017.01.12
mysql 변수별 사이즈  (0) 2017.01.12
mysql 다대다 관계  (0) 2017.01.04
Posted by 구차니

BLOB은 Binary Large OBject의 약자인데

[링크 : http://dev.mysql.com/doc/refman/5.7/en/blob.html]


mediawiki 구조를 보는데 희한하리만치 blob을 많이써서 찾아보는데

이미지까지도 blob으로 관리한다는 나름 근래글들...



그래도 대용량일 경우 disk io많이먹으니 데이블 분리를 추천

[링크 : http://stackoverflow.com/.../speed-of-mysql-query-on-tables-containing-blob-depends-on-filesystem-cache]

'프로그램 사용 > mysql & mariaDB' 카테고리의 다른 글

mysql mariadb 호환성  (0) 2017.01.12
mysql 트랜잭션  (0) 2017.01.12
mysql 변수별 사이즈  (0) 2017.01.12
mysql 다대다 관계  (0) 2017.01.04
mysql 인덱스와 db설계 실무 팁(?)  (0) 2017.01.04
Posted by 구차니

mediawiki에 BLOB 말고

MEDIUMBLOB 이라는게 있어서 용량을 찾아 보니.. 2^24?

2^24 = 16777216 = 16MB

위키 문서 길이 치고는 너무 긴거 아닌가 싶기도 하고?


[링크 : http://dev.mysql.com/doc/refman/5.5/en/storage-requirements.html]

'프로그램 사용 > mysql & mariaDB' 카테고리의 다른 글

mysql 트랜잭션  (0) 2017.01.12
mysql blob - binary large object  (0) 2017.01.12
mysql 다대다 관계  (0) 2017.01.04
mysql 인덱스와 db설계 실무 팁(?)  (0) 2017.01.04
mysql datetime과 timestamp 차이점  (0) 2017.01.04
Posted by 구차니

예전 db 수업 시간에 들은거 같은데

결론은.. 다대다 관계를 지원하더라도 되도록이면 DB정규화를 통해

1:N이나 N:1으로 다대다 관계를 풀어서 쓰도록


[링크 : http://loopypapa.tistory.com/entry/SQL-일대일-일대다-다대다-관계]

[링크 : http://www.taeyo.net/Forum/Content.aspx?SEQ=22495&TBL=SQL&PGN=1330]

Posted by 구차니

phpmyadmin 에서 인덱스가 없습니다! 하나 생성하세요.

라고 하길래 봤는데.. 이거 막 새엇ㅇ하면 안되겠꾸만


인덱스 생성시 느리고, select시 성능향상을 줌

[링크 : http://ra2kstar.tistory.com/96]


oracle과 차이점

[링크 : http://gywn.net/2012/05/mysql-bad-sql-type/]


null 대신 not null(그래서 기본값이 not null 이었나..)

[링크 : http://egloos.zum.com/tiger5net/v/5660848]


https://blog.lael.be/post/370

'프로그램 사용 > mysql & mariaDB' 카테고리의 다른 글

mysql 변수별 사이즈  (0) 2017.01.12
mysql 다대다 관계  (0) 2017.01.04
mysql datetime과 timestamp 차이점  (0) 2017.01.04
mysqldump 복구시 TYPE=MyISAM 오류  (0) 2016.10.06
woobi mysql 백업복구  (0) 2015.03.02
Posted by 구차니

mysql 5.7 메뉴얼인데.. 1970 epoch 기준으로 timestamp를 사용되는데 32bit 인가..

mysql 64bit면 더 길게 저장이 되려나?



아무튼 차이점은 timestamp는 UTC + epoch(2038년 문제 발생)

datetime은 9999년까지 가능


The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.


The TIMESTAMP data type is used for values that contain both date and time parts. TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC

[링크 : http://dev.mysql.com/doc/refman/5.7/en/datetime.html]


8바이트 먹지만 DATETIME형을 쓰는게 2038 문제 회피에 유리하다 인가?

[링크 : http://stackoverflow.com/questions/2012589/php-mysql-year-2038-bug-what-is-it-how-to-solve-it]


[링크 : http://mysqldba.tistory.com/268]

[링크 : http://blog.naver.com/gigar/60115731039]

[링크 : http://linux.systemv.pe.kr/timestamp-datetime-기능-개선/]


DATETIME에는 NOW() 함수로 현재 시간을 넣어 줄 수 있네

[링크 : http://jsonobject.tistory.com/122]

Posted by 구차니

TYPE=MyISAM 에서

ENGINE=MyISAM 으로 수정하면 된다.


[링크 : https://www.guideline.co.kr/howto/howto_contents.php?idx=130]

Posted by 구차니

db를 복구하려는데 에러발생!


$ ll

▒հ▒ 341564

drwx-----x  2 minimonk user      4096 2012-05-06 21:10 m

-rw-r--r--  1 minimonk user 294814223 2015-02-03 11:33 minimonk.sql

-rw-r--r--  1 minimonk user  54933995 2015-03-02 17:30 minimonk.sql.zip

drwx-----x 15 minimonk user      4096 2012-07-18 20:14 www


$ mysql -uusername -p dbname < mediawiki.sql

Enter password:

ERROR 1153 (08S01) at line 18575: 'max_allowed_packet'▒▒▒▒ ▒▒ū ▒▒Ŷ▒ ▒޾ҽ▒ϴ▒.


그래서 한번 검색은 해보고 따라해봤지만

mysql> show variables like 'max_allowed_packet';

+--------------------+---------+

| Variable_name      | Value   |

+--------------------+---------+

| max_allowed_packet | r|

+--------------------+---------+

1 row in set (0.00 sec)

mysql> set global net_buffer_length=1000000;
ERROR 1227 (42000): Access denied; you need the SUPER privilege for this operation
mysql> set global max_allowed_packet=1000000000;
ERROR 1227 (42000): Access denied; you need the SUPER privilege for this operation 


너님 권한없음 ㄴㄴ 외치는 mysql -_-


[링크 : http://stackoverflow.com/.../mysql-error-1153-got-a-packet-bigger-than-max-allowed-packet-bytes]

[링크 : http://www.jquery.kr/...search_keyword=&origin_target=]


max_allowed_packet은 업로드 하는 파일의 용량이고, 네트워크 패킷과는 상관이 없는 값

그런데.. 저 값만 단순하게 보면 1MB 정도이려나?(바이트 라면 1024 * 1024 = 1048576)


[링크 : http://blackbull.tistory.com/12]


+

2015.03.03

저기요 -_- 쉽지 않으니까 유료 서비스 이용하면서 문의하죠 아오 -_-


즐거운 하루 되세요, 우비 입니다.
해당 오류는 해당 DB 테이블에 문제가 발생되어 오류가 호출되고 있는 부분입니다.
오류 해결은 간단하게 해결되지 때문에 해당 부분을 도움드리기 어렵습니다.
해당 테이블을 점검해서 확인 해 보시기 바랍니다.
이용 해 주셔서 감사합니다.

내참.. 드러워서 내가 서버 돌려서 올리고 다시 내려 받고 또 올리던가
그냥 내 서버에서 돌리던가 해야지 에잇 -_-

2015.03.10 추가
서버측에서 설정해야지 mysql client로 한다고 해서 달라지는건 없는 듯. -_-


Posted by 구차니