본문 바로가기

SQL2314

MySQL 더 빠른 것 : JDBC 또는 JNDI? 애플리케이션 데이터베이스 연결을 구성하는 두 가지 옵션이 있습니다. 하나는 JDBC를 사용하고 다른 하나는 JNDI를 사용하는 것입니다. 이러한 연결 유형이 데이터베이스에서 작동하는 속도 측면에서 가장 좋은 옵션은 무엇입니까? 나는 그것들이 서로 다른 원칙을 사용하는 두 가지 유형의 데이터베이스 연결임을 이해합니다 (JDBC는 직접 db 연결이고 JNDI는 응용 프로그램 서버 측의 데이터베이스 연결 풀 구성입니다). 그러나 작동 속도보다 더 중요한 다른 일반적인 JDBC / JNDI 장단점이 있습니까? 그렇다면 그들은 무엇입니까? 해결 방법 당신이 의미하는 바는 이 경우 가능하면 항상 2를 고수하십시오. 선택의 주된 이유는 성능 차이가 아닙니다. 2를 고수하는 이유는 대부분의 경우 분산 트랜잭션과 같은 .. 2021. 2. 4.
MySQL 사용자 활동을 기록하는 가장 좋은 방법은 무엇입니까? 내 웹 앱 ( php + js + mysql )에 대한 사용자의 활동 로깅을 구현하고 싶습니다. 이전에는이 ​​접근 방식을 사용했습니다. 이제는 데이터베이스에 너무 많은 논리를 넣고 싶지 않으므로 내 질문은 다음과 같습니다. 모범 사례는 무엇입니까? 설명 된 방법을 유지해야합니까, 아니면 다른 방법을 사용해야합니까? 수정 1 수정 2 로그가 필요한 이유 : 문제가 발생하면 어떤 사용자를 비난해야하는지 알아야합니다 =) 로그에는 변경된 데이터와 새 데이터가 있어야 실제로 변경된 내용을 볼 수 있습니다. 기업용 앱이기 때문에 사용자가 많지 않고 우리 회사는 그렇게 크지 않습니다. 주요 질문은 로깅 로직을 어디에 두어야 하는가입니다 : 데이터베이스 또는 애플리케이션 (php 백엔드) 수준? 해결 방법 항상 그.. 2021. 2. 4.
MySQL mysql 데이터베이스에서 드롭 다운 목록을 채우고 값을 반복하지 마십시오. mysql 데이터베이스에서 드롭 다운 메뉴를 채우고 있습니다. 잘 작동하지만 값을 반복하지 않기를 바랍니다. (즉, 데이터베이스에서 일부 값이 N 번이면 드롭 다운 목록에 한 번만 표시됨) 내 코드는 다음과 같습니다. 해결 방법 "SELECT DISTINCT year FROM data"; 참조 페이지 https://stackoverflow.com/questions/11501652 2021. 2. 4.
MySQL에서 MAX와 LIMIT를 함께 사용하는 방법 다음 구조의 테이블이 있습니다. 1 | 빨간색 2 | blue 3 | yellow 8 | purple 10| green . . . 100 | 노란색 처음 5 개 행에 대한 MAX ID 값을 확보하고 싶습니다. 예를 들어 다음과 같이하고 싶습니다. Table LIMIT 5에서 MAX (ID) 선택 이것이 값 10을 반환하기를 바랍니다. 그러나 MySQL은 계속 100을 반환합니다. MySQL과 마찬가지로 LIMIT 절도 표시되지 않습니다. 해결 방법 상위 5 개 레코드 (ID 순)를 선택한 다음 해당 그룹의 가장 높은 값을 얻고 싶은 것 같습니까? 그렇다면: SELECT MAX(ID) FROM ( SELECT ID FROM YourTable ORDER BY ID LIMIT 5 ) as T1 참조 페이지 h.. 2021. 2. 4.
MySQL MySqlException : 시간 초과가 만료되었습니다. 연결 시간 초과를 늘려도 효과가 없습니다. 데이터베이스 크기가 증가함에 따라 실행하는 데 더 오래 걸리는 쿼리가 있습니다. 쿼리가 최적화되고 필요하지만 내 C # 콘솔 응용 프로그램에서 최근에 다음 오류가 발생했습니다. Unhandled Exception: MySql.Data.MySqlClient.MySqlException: Timeout expired. 연결 문자열에서 연결 시간 초과를 늘리는 것은 도움이되지 않습니다. 나는 그것을 증가시켰다 연결 시간 초과 = 28800 ...에 연결 시간 초과 = 128800 하지만이 변경에도 불구하고 여전히 오류가 발생합니다. MySQL 워크 벤치에서 쿼리를 실행하면 약 10 초 밖에 걸리지 않으므로이 처리되지 않은 예외를 방지하는 방법을 잘 모르겠습니다. "쿼리에 걸리는 시간"외에이 예외를 생성 할 수있.. 2021. 2. 4.
MySQL 타임 스탬프 형식 "Y-M-D H : M : S"와 일치하는 정규 표현식 MySQL 타임 스탬프 형식 (예 : "2012-07-16 02:04:33")의 날짜를 포함하는 문자열과 일치하는 정규식을 만들려고합니다. 예를 들어 들리는 것처럼 쉽지 않습니다. 2 월 30 일로 끝나서는 안됩니다. 이 작업을 수행하는 더 쉬운 방법이 있다는 것을 알고 있지만 해당 문자열을 평가하기 위해 문자열과 정규식을 전달할 수 있는지 여부에 의존하고 있습니다. 나는 어떤 제안이라도 기뻐할 것입니다. 해결 방법 정규식 : /^(((\d{4})(-)(0[13578]|10|12)(-)(0[1-9]|[12][0-9]|3[01]))|((\d{4})(-)(0[469]|1??1)(-)([0][1-9]|[12][0-9]|30))|((\d{4})(-)(02)(-)(0[1-9]|1[0-9]|2[0-8]))|(([0.. 2021. 2. 4.
MySQL 저장 프로 시저와 복잡한 쿼리 저장 프로 시저의 성능은 어떻습니까? PHP / MySQL 호출에서 복잡한 쿼리를 구현하는 대신 사용할 가치가 있습니까? 해결 방법 저장 프로시 저는 약간의 성능 향상을 제공하지만 대부분은 간단한 쿼리로 수행하기 어렵거나 불가능한 작업을 수행하기위한 것입니다. 저장 프로시 저는 다양한 유형의 클라이언트에 대한 데이터 액세스를 단순화하는 데 유용합니다. 데이터베이스 관리자는 이러한 세부 정보를 개발자에게 맡기는 대신 데이터베이스 사용 방식을 제어하기 때문에이를 좋아합니다. 더 나은 성능을 얻으려면 인덱스와 적절한 테이블 디자인을 찾으십시오. 참조 페이지 https://stackoverflow.com/questions/1151255 2021. 2. 4.
MySQL에서 기본 키가 아닌 필드를 auto_increment해야합니다. 지금은 기본 키가 auto_increment 필드 인 테이블이 있습니다. 그러나 기본 키를 username , date 로 설정해야합니다 (날짜가있는 중복 사용자 이름이있을 수 없도록하기 위해). 그러나 행 정보를 변경 (추가 및 삭제)하려면 auto_increment 필드가 필요합니다. 이 상황에서 일반적으로 수행되는 작업은 무엇입니까? 감사! 해결 방법 (사용자 이름, 날짜)의 조합에 고유 색인을 설정하십시오. ALTER TABLE `table` ADD UNIQUE INDEX `name` (`username`, `date`); 또는 시도해 볼 수 있습니다. ALTER TABLE `table` DROP PRIMARY KEY, ADD PRIMARY KEY(`username`,`date`); 후자의 경우 .. 2021. 2. 4.
MySQL에 대한 최적의 varchar 크기는 무엇입니까? MySQL은 varchar 필드를 어떻게 저장합니까? 다음 패턴이 합리적인 스토리지 크기를 나타낸다고 가정 할 수 있습니까? 1,2,4,8,16,32,64,128,255 (최대) 예를 통한 설명. 20 자의 varchar 필드가 있다고 가정 해 보겠습니다. 이 필드를 만들 때 MySQL은 기본적으로 32 바이트 (바이트인지 아닌지 확실하지 않음)를위한 공간을 예약하지만 20 만 입력 할 수 있습니까? 거대한 테이블을 위해 디스크 공간을 최적화하는 것이 걱정되는 것 같습니다. 해결 방법 질문에 답하기 위해 MySql 디스크에서 1 + 데이터를 저장하기 위해 필드에서 사용되는 크기를 사용합니다 (따라서 열이 varchar (45)로 선언되고 필드가 "FooBar"인 경우 디스크에서 7 바이트를 사용합니다. .. 2021. 2. 4.
MySQL 테이블에서 다른 mysql로 ​​일부 열을 복사하는 방법 다음과 같은 두 개의 테이블이 있습니다. 1 번 테이블: |A|B|C|D|E|F|G|H|I|J| 표 2 : |A|C|D|E|G|H|J|K|L|M|N|O|P| 표 2에서 표 1로 일부 열을 복사해야합니다. 내가 시도하는 것은 : INSERT INTO `table 1` (`C`,`D`,`E`,`G`,`J`) SELECT `C`,`D`,`E`,`G`,`J` FROM `table 2` WHERE `table 1`.`A` = `table 2`.`A`; 그러나 결과 : #1054 - Unknown column 'table 1.A' in 'where clause' 오류는 어디에 있습니까? 누군가 나를 도울 수 있습니까? 내 오류는 새 행을 삽입 할 필요가 없지만 A 열과 일치하는 행을 업데이트한다는 것입니다. 어떤 .. 2021. 2. 4.