MYSQL到ORACLE程序遷移的注意事項(xiàng)(轉(zhuǎn)載)
Jun 21, 2016 am 09:12 AMmysql|oracle|程序
MYSQL到ORACLE程序遷移的注意事項(xiàng)?????????????
????????????????????????????????????2001-09
????有很多應(yīng)用項(xiàng)目, 剛起步的時(shí)候用MYSQL數(shù)據(jù)庫(kù)基本上能實(shí)現(xiàn)各種功能需求,隨著應(yīng)用用戶的增多,
數(shù)據(jù)量的增加,MYSQL漸漸地出現(xiàn)不堪重負(fù)的情況:連接很慢甚至宕機(jī),于是就有把數(shù)據(jù)從MYSQL遷到
ORACLE的需求,應(yīng)用程序也要相應(yīng)做一些修改。本人總結(jié)出以下幾點(diǎn)注意事項(xiàng),希望對(duì)大家有所幫助。
1. 自動(dòng)增長(zhǎng)的數(shù)據(jù)類(lèi)型處理
????MYSQL有自動(dòng)增長(zhǎng)的數(shù)據(jù)類(lèi)型,插入記錄時(shí)不用操作此字段,會(huì)自動(dòng)獲得數(shù)據(jù)值。
ORACLE沒(méi)有自動(dòng)增長(zhǎng)的數(shù)據(jù)類(lèi)型,需要建立一個(gè)自動(dòng)增長(zhǎng)的序列號(hào),插入記錄時(shí)要把序列號(hào)的下一個(gè)
值賦于此字段。
????CREATE SEQUENCE 序列號(hào)的名稱(chēng) (最好是表名+序列號(hào)標(biāo)記) INCREMENT BY 1??START??WITH??1
MAXVALUE??99999??CYCLE??NOCACHE;
????其中最大的值按字段的長(zhǎng)度來(lái)定, 如果定義的自動(dòng)增長(zhǎng)的序列號(hào) NUMBER(6) , 最大值為999999
????INSERT 語(yǔ)句插入這個(gè)字段值為: 序列號(hào)的名稱(chēng).NEXTVAL
2. 單引號(hào)的處理
????MYSQL里可以用雙引號(hào)包起字符串,ORACLE里只可以用單引號(hào)包起字符串。在插入和修改字符串
前必須做單引號(hào)的替換:把所有出現(xiàn)的一個(gè)單引號(hào)替換成兩個(gè)單引號(hào)。
3.??翻頁(yè)的SQL語(yǔ)句的處理
????MYSQL處理翻頁(yè)的SQL語(yǔ)句比較簡(jiǎn)單,用LIMIT 開(kāi)始位置, 記錄個(gè)數(shù);PHP里還可以用SEEK定位到結(jié)果
集的位置。
????ORACLE處理翻頁(yè)的SQL語(yǔ)句就比較繁瑣了。每個(gè)結(jié)果集只有一個(gè)ROWNUM字段標(biāo)明它的位置, 并且只能
用ROWNUM80。
????以下是經(jīng)過(guò)分析后較好的兩種ORACLE翻頁(yè)SQL語(yǔ)句( ID是唯一關(guān)鍵字的字段名 ):
????語(yǔ)句一:
????SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT
ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE 條件1 ORDER BY 條件2) WHERE NUMROW > 80 AND
NUMROW ??
????語(yǔ)句二:
????SELECT * FROM (( SELECT ROWNUM AS NUMROW, c.* from (select [FIELD_NAME,...] FROM
TABLE_NAME WHERE 條件1 ORDER BY 條件2) c) WHERE NUMROW > 80 AND NUMROW
4. 長(zhǎng)字符串的處理
????長(zhǎng)字符串的處理ORACLE也有它特殊的地方。INSERT和UPDATE時(shí)最大可操作的字符串長(zhǎng)度小于等于
4000個(gè)單字節(jié), 如果要插入更長(zhǎng)的字符串, 請(qǐng)考慮字段用CLOB類(lèi)型,方法借用ORACLE里自帶的DBMS_LOB程序
包。插入修改記錄前一定要做進(jìn)行非空和長(zhǎng)度判斷,不能為空的字段值和超出長(zhǎng)度字段值都應(yīng)該提出警告,
返回上次操作。
5.??日期字段的處理
????MYSQL日期字段分DATE和TIME兩種,ORACLE日期字段只有DATE,包含年月日時(shí)分秒信息,用當(dāng)前數(shù)據(jù)庫(kù)
的系統(tǒng)時(shí)間為SYSDATE, 精確到秒,或者用字符串轉(zhuǎn)換成日期型函數(shù)TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)
年-月-日 24小時(shí):分鐘:秒 的格式Y(jié)YYY-MM-DD HH24:MI:SS TO_DATE()還有很多種日期格式, 可以參看
ORACLE DOC.
????日期型字段轉(zhuǎn)換成字符串函數(shù)TO_CHAR(‘2001-08-01’,’YYYY-MM-DD HH24:MI:SS’)
????日期字段的數(shù)學(xué)運(yùn)算公式有很大的不同。
???????MYSQL找到離當(dāng)前時(shí)間7天用
????DATE_FIELD_NAME > SUBDATE((NOW(),INTERVAL 7 DAY)
?????ORACLE找到離當(dāng)前時(shí)間7天用
????DATE_FIELD_NAME >SYSDATE - 7;
6.??空字符的處理
????MYSQL的非空字段也有空的內(nèi)容,ORACLE里定義了非空字段就不容許有空的內(nèi)容。
????按MYSQL的NOT NULL來(lái)定義ORACLE表結(jié)構(gòu), 導(dǎo)數(shù)據(jù)的時(shí)候會(huì)產(chǎn)生錯(cuò)誤。因此導(dǎo)數(shù)據(jù)時(shí)要對(duì)空字符進(jìn)行判
斷,如果為NULL或空字符,需要把它改成一個(gè)空格的字符串。
7. 字符串的模糊比較
???MYSQL里用????????字段名 like '%字符串%'
???ORACLE里也可以用????字段名 like '%字符串%'????????但這種方法不能使用索引, 速度不快
???用字符串比較函數(shù)????????instr(字段名,'字符串')>0????????會(huì)得到更精確的查找結(jié)果????
8. 程序和函數(shù)里,操作數(shù)據(jù)庫(kù)的工作完成后請(qǐng)注意結(jié)果集和指針的釋放。
有興趣可以看MYSQL管理員指南????????????

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

1. Die erste Wahl für die Kombination aus Laravel Mysql Vue/React in der PHP -Entwicklungsfrage und der Antwortgemeinschaft ist die erste Wahl für die Kombination aus Laravel Mysql Vue/React aufgrund ihrer Reife im ?kosystem und der hohen Entwicklungseffizienz; 2. Die hohe Leistung erfordert Abh?ngigkeit von Cache (REDIS), Datenbankoptimierung, CDN und asynchronen Warteschlangen; 3. Die Sicherheit muss mit Eingabefilterung, CSRF -Schutz, HTTPS, Kennwortverschlüsselung und Berechtigungssteuerung erfolgen. V.

Es gibt drei Hauptmethoden, um Umgebungsvariablen in PHP festzulegen: 1. Globale Konfiguration über php.ini; 2. durch einen Webserver (z. B. SetEnv von Apache oder FastCGI_Param von Nginx); 3. Verwenden Sie die Funktion Putenv () in PHP -Skripten. Unter ihnen eignet sich Php.ini für globale und selten ?ndernde Konfigurationen. Die Webserverkonfiguration eignet sich für Szenarien, die isoliert werden müssen, und Putenv () ist für tempor?re Variablen geeignet. Die Persistenz -Richtlinien umfassen Konfigurationsdateien (z. B. Php.ini oder Webserverkonfiguration), .env -Dateien werden mit der DOTENV -Bibliothek und dynamische Injektion von Variablen in CI/CD -Prozessen geladen. Sicherheitsmanagement sensible Informationen sollten hart codiert werden, und es wird empfohlen.

Um Benutzerverhaltensdaten zu erfassen, müssen Sie das Browsen, die Suche, den Kauf und andere Informationen über PHP in die Datenbank aufzeichnen und sie reinigen und analysieren, um die Interessenpr?ferenzen zu untersuchen. 2. Die Auswahl der Empfehlungsalgorithmen sollte auf der Grundlage von Datenmerkmalen ermittelt werden: basierend auf Inhalten, kollaborativen Filterung, Regeln oder gemischten Empfehlungen; 3. Die kollaborative Filterung kann in PHP implementiert werden, um die ?hnlichkeit der Benutzer Cosinus Cosinus zu berechnen, K n?chste Nachbarn auszuw?hlen, gewichtete Vorhersagewerte zu erzielen und Produkte mit hoher Punktzahl zu empfehlen. 4. Die Leistungsbewertung verwendet Genauigkeit, Rückruf, F1 -Wert und CTR, Conversion -Rate und überprüfen den Effekt durch A/B -Tests. 5. Kaltstartprobleme k?nnen durch Produktattribute, Benutzerregistrierungsinformationen, Volksempfehlungen und Expertenbewertungen gelindert werden. 6. Die Leistungsoptimierungsmethoden umfassen zwischengespeicherte Empfehlungsergebnisse, asynchrone Verarbeitung, verteiltes Computing und SQL -Abfrageoptimierung, wodurch die Empfehlungseffizienz und die Benutzererfahrung verbessert werden.

Bei der Auswahl eines geeigneten PHP -Frameworks müssen Sie nach den Projektanforderungen umfassend berücksichtigen: Laravel ist für die schnelle Entwicklung geeignet und bietet eloquentorm- und Blade -Vorlagenmotoren, die für den Datenbankbetrieb und das dynamische Formrending bequem sind. Symfony ist flexibler und für komplexe Systeme geeignet. CodeIgniter ist leicht und für einfache Anwendungen mit hohen Leistungsanforderungen geeignet. 2. Um die Genauigkeit von KI-Modellen sicherzustellen, müssen wir mit einem qualitativ hochwertigen Datentraining, einer angemessenen Auswahl von Bewertungsindikatoren (wie Genauigkeit, Rückruf, F1-Wert), regelm??iger Leistungsbewertung und Modellabstimmung und sicherstellen, dass die Codequalit?t durch Testen und Integrationstests der Code sichergestellt wird, um die Eingabedaten kontinuierlich zu überwachen. 3.. Viele Ma?nahmen sind erforderlich, um die Privatsph?re der Benutzer zu schützen: Verschlüsseln und speichern sensible Daten (wie AES

PHP spielt die Rolle des Connector- und Brain Center im intelligenten Kundendienst, der für die Verbindung von Front-End-Eingaben, Datenbankspeicher und externen KI-Diensten verantwortlich ist. 2. Bei der Implementierung ist es notwendig, eine mehrschichtige Architektur zu erstellen: Das Front-End empf?ngt Benutzernachrichten, die PHP-Back-End-Vorverarbeitete und Routes-Anfragen, stimmt zun?chst mit der lokalen Wissensbasis überein und verpasst sie, rufen Sie externe KI-Dienste wie OpenAI oder Dialogflow an, um intelligente Antwort zu erhalten. 3. Die Sitzungsverwaltung wird von PHP an MySQL und andere Datenbanken geschrieben, um die Kontext -Kontinuit?t zu gew?hrleisten. 4. Integrierte KI -Dienste müssen mit Guzzle HTTP -Anfragen senden, APIKEYs sicher speichern und eine gute Aufgabe der Fehlerbehandlung und -antwortanalyse durchführen. 5. Datenbankdesign muss Sitzungen, Nachrichten, Wissensbasis und Benutzertabellen enthalten, vernünftigerweise Indizes erstellen, Sicherheit und Leistung sicherstellen und Roboterspeicher unterstützen

Um PHP -Container zur Unterstützung der automatischen Konstruktion zu erm?glichen, liegt der Kern in der Konfiguration des Continuous Integration (CI) -Prozesses. 1. Verwenden Sie Dockerfile, um die PHP -Umgebung zu definieren, einschlie?lich grundlegender Bild-, Erweiterungsinstallations-, Abh?ngigkeitsmanagement- und Berechtigungseinstellungen. 2. Konfigurieren Sie CI/CD-Tools wie GitLabci und definieren Sie die Erstell-, Test- und Bereitstellungsstadien über die Datei .gitlab-ci.yml, um automatische Konstruktion, Test und Bereitstellung zu erreichen. 3.. Integrieren Sie Testframeworks wie Phpunit, um sicherzustellen, dass die Tests automatisch nach Code?nderungen ausgeführt werden. 4. Verwenden Sie automatisierte Bereitstellungsstrategien wie Kubernetes, um die Bereitstellungskonfiguration durch die Datei bereitzustellen. 5. Dockerfile optimieren und mehrstufige Konstruktionen übernehmen

Die Kernidee von PHP, das KI für die Analyse von Videoinhalten kombiniert, besteht darin, PHP als Backend "Kleber" zu dienen, zuerst Video in Cloud -Speicher hochzuladen und dann AI -Dienste (wie Google CloudVideoai usw.) für eine asynchrone Analyse aufzurufen. 2. PHP analysiert die JSON -Ergebnisse, extrahieren Sie Personen, Objekte, Szenen, Sprach- und andere Informationen, um intelligente Tags zu generieren und in der Datenbank zu speichern. 3.. 4. H?ufige Herausforderungen sind eine gro?e Dateiverarbeitung (direkt über die Cloud-Speicherung mit vorsignierten URLs übertragen), asynchrone Aufgaben (Einführung von Nachrichtenwarteschlangen), Kostenkontrolle (On-Demand-Analyse, Budgetüberwachung) und Ergebnisoptimierung (Label-Standardisierung); 5. Smart Tags verbessern sich erheblich visuell

Der Aufbau einer unabh?ngigen Umgebung für PHP -Aufgabencontainer kann über Docker implementiert werden. Die spezifischen Schritte sind wie folgt: 1. Installieren Sie Docker und DockerComponpose als Grundlage; 2. Erstellen Sie ein unabh?ngiges Verzeichnis, um Dockerfile und Crontab -Dateien zu speichern. 3. Schreiben Sie Dockerfile, um die PHPCLI -Umgebung zu definieren und Cron und die erforderlichen Erweiterungen zu installieren. 4. Schreiben Sie eine Crontab -Datei, um Zeitaufgaben zu definieren. 5. Schreiben Sie ein Docker-compose.yml-Mount-Skriptverzeichnis und konfigurieren Sie Umgebungsvariablen. 6. Starten Sie den Container und überprüfen Sie das Protokoll. Im Vergleich zu Timing -Aufgaben in Webcontainern haben unabh?ngige Container die Vorteile der Ressourcenisolation, der reinen Umgebung, der starken Stabilit?t und einer einfachen Expansion. Gew?hrleistung der Protokollierung und Fehleraufnahme
