MySQL

Batch

update at3_field_data_field_user_intro set field_user_intro_format=replace(field_user_intro_format,’full_html’,’wysiwyg’); update at3_field_data_field_user_intro set field_user_intro_format=replace(field_user_intro_format,’filtered_html’,’wysiwyg’); update at3_field_data_field_user_intro set field_user_intro_format=replace(field_user_intro_format,’NULL’,’wysiwyg’) update at3_field_data_body set body_format=replace(body_format,’full_html’,’wysiwyg’); update at3_field_data_body set body_format=replace(body_format,’filtered_html’,’wysiwyg’); update at3_field_data_body set body_format=replace(body_format,’NULL’,’wysiwyg’)

Posted in MySQL | Comments Off on Batch

유닉스타임스탬프

유닉스타임스탬프/86400 + 365*70 + 17 + 9/24 유닉스 타임스탬프는 1970년 1월 1일부터의 초이고 엑셀 시간은 1900년 1월 1일부터의 일을 의미. 17은 70년동안 윤년이 17번 있었다는 의미이고 마지막 9/24는 대한민국이 UTC+9 시간대에 있기 때문… 예제) 1155946467 / 86400 + 365*70 + 17 + 9/24 = 25567.375 25567.375의 셀서식을 날짜로 변경하면 2006-08-17 과 같은 날짜를 얻을수 있다. —————————————————————————————— =B2/86400+365*70+19+TIMEVALUE(“9:00:00”) 이렇게 하시고 셀서식에서 표시 형식을 날짜로 해주시면 됩니다. B2 : timestamp값 365*70+19 : 1970년 1월 1일 (Timestamp의 0 = 1970, 엑셀의 0 = 1900) TIMEVALUE(“9:00:00”) : GMT+9

Posted in MySQL | Comments Off on 유닉스타임스탬프

[MySQL] MySQL5.1 레퍼런스 BLOB/TEXT

10.4.3. The BLOB and TEXT Types BLOB은 가변형 데이터를 저장하는 바이너리 대용량 객체이다. BLOB은 TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB이 있다. 이것은 저장 용량의 최대 길이에 따른 분류이다. TEXT는 TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT가 있다. TEXT 타입은 BLOB 타입과 일치하며 최대 길이와 용량도 같다. BLOB 컬럼은 바이너리 스트링값(바이트형)을 가지며 TEXT 컬럼은 넌바이너리 스트링값(캐릭터형)을 가진다. BLOB 컬럼은 캐릭터셋이 없으며 컬럼값에서 바이트형의 숫자값으로 비교하고 정렬된다. TEXT 컬럼은 캐릭터셋을 가지며 캐릭터셋의 collation 에 따라 비교하여 정렬된 값을 갖는다. strict SQL mode가 enable이 아니면 컬럼의 최대 길이를 초과하는 값을 BLOB이나 TEXT 컬럼에 대입할 것이고 그 값은 길이에 맞게 버림을 할 것이며 경고가 발생하게 된다. 공백이 없는 캐릭터를 자르면 (경고보다는)에러가 발생하게 되며 strict SQL mode를 사용하여 값의 삽입을 막을 수 있다. MySQL 5.1.24의 시작에서, […]

Posted in MySQL | Comments Off on [MySQL] MySQL5.1 레퍼런스 BLOB/TEXT

MySQL 쓰면서 하지 말아야 할 것

*MySQL 쓰면서 하지 말아야 할 것 17가지* 작게 생각하기 – 조만간 규모가 커질거라면 MySQL ecosystem을 봐야된다. – 그리고 캐싱 빡시게 안 하는 메이저 웹사이트는 없다. – develooper.com의 Hansen PT랑 Ilia 튜토리얼 볼 것 – 처음부터 확장 가능하게 아키텍처 잘 쪼개놔야된다. – 복제랑 파티셔닝 어떻게 할지 미리 계획 세워놔라. – 파일 기반 세션 좀 쓰지마 -_- – 그렇다고 너무 쓸데없이 크게 생각하지도 말 것 – 특히 성능하고 확장성 구분 못 하면 난감함 EXPLAIN 안 써보기 – SELECT 앞에 EXPLAIN 이라고 붙이기만 하면 되는 것을 (..) – 실행 계획 확인 – 타입 컬럼에 index 써있는거랑 Extra 컬럼에 index 써있는거랑 “매우 큰” 차이 있음 * 타입에 있으면 Full 인덱스 스캔 (안 좋다.) * […]

Posted in MySQL | Comments Off on MySQL 쓰면서 하지 말아야 할 것

InnoDB 테이블 변경 작업의 일괄 처리

MySQL 5.1 미만의 버전에서는 InnoDB 테이블의 변경 작업 (컬럼 또는 인덱스의 추가 삭제 수정)은 InnoDB 테이블 전체의 데이터를 다른 테이블로 복사를 하면서 처리된다. 이로 인해서 간단한 추가나 인덱스 작업마저도 상당한 시간이 소요되며, 이러한 작업들은 일반적으로 해당 테이블 전체에 대해서 Lock을 점유하기 때문에 실시간 사용자들의 접근을 모두 대기 상태로 만들어 버리게 된다. MySQL 5.1 이상의 버전에서는 InnoDB가 Plugin버전으로 제공되며, InnoDB Plugin을 이용한 테이블에서는 인덱스 작업은 테이블의 데이터 복사를 피할 수 있다. (하지만 여전히 Primary key 변경이나 컬럼 변경 작업은 기존과 동일한 방식으로 처리된다.) 그래서, 이러한 작업의 처리 시간을 최소화하기 위해서는 여러 가지 변경 작업들을 한꺼번에 모아서 처리하는 것이 가장 좋다. 사실 간단한 방법이지만, 이 방법을 모르는 사람들이 의외로 많은 듯 하여 […]

Posted in MySQL | Comments Off on InnoDB 테이블 변경 작업의 일괄 처리

필드 일괄수정

update 테이블명 set 컬럼명 = replace(컬럼명,’바꾸고자하는 단어’,’바꿀 단어’) WHERE 컬럼명 LIKE ‘%바꾸고자하는 단어%’; DB의 테이블에서 UPDATE와 REPLACE를 이용하여 특정 단어들을 수정하는 방법. 예를 들어 홈페이지 이름을 변경하였을 때 기존의 모든 게시판에서 그동안 적어두었던 홈페이지명을 바뀐 홈페이지명으로 바꾸고자할 때 사용.   update g4_write_z3_1 set wr_content= replace(wr_content,'<br />’,”) WHERE wr_content LIKE ‘%<br />%’; update g4_write_z6_3 set wr_content= replace(wr_content,'[##_1C|’,'<center><img src=/image/’) WHERE wr_content LIKE ‘%[##_1C|%’; update g4_write_z6_3 set wr_content= replace(wr_content,’|width’,’ width’) WHERE wr_content LIKE ‘%|width%’; update g4_write_z6_3 set wr_content= replace(wr_content,’|_##]’,’></center>’) WHERE wr_content LIKE ‘%|_##]%’; update g4_write_z6_3 set wr_content= replace(wr_content,’| _##]’,’></center>’) WHERE wr_content LIKE ‘%| _##]%’; D:homepagerhinoceroswwwimage </code></pre>

Posted in MySQL | Comments Off on 필드 일괄수정

MySQL code

* My-SQL – mysql 공식 사이트 http://www.mysql.com – 로그인하는 방법 mysql -h 호스트 -u 아이디 -p => 패스워드를 입력 mysql -u 아이디 -p패스워드 – 데이터베이스 보기 show databases; – 데이터베이스 사용 use 데이터베이스명 – 테이블 목록 보기 show tables; – 종료하기 ( quit or \q ) – 데이터베이스 만들기 create database 데이터베이스이름; – mysql에 새로운 사용자 계정 추가하기 1) root 계정으로 접속 : mysql -u root -p 2) mysql 데이터베이스 연결 : use mysql 3) user 테이블에 새로운 사용자 계정 추가 insert into user (host,user,password) values (‘호스트’,’아이디’,password(‘패스워드’) ); // 패스워드는 반드시 암호화 처리 IP => 특정 호스트 % => 모든 호스트 localhost => 로컬에서만 접속 가능 4) db 테이블에 권한 […]

Posted in MySQL | Comments Off on MySQL code