คำถามติดแท็ก mysql

MySQL ทุกรุ่น (ไม่ใช่ Microsoft SQL Server) โปรดเพิ่มแท็กเฉพาะเวอร์ชันเช่น mysql-5.7 หากเกี่ยวข้องกับคำถาม

3
วิธีการตรวจสอบ master ใน mysql master-slave
ฉันกำลังตั้งค่าการจำลองแบบ MySQL Master-slave และฉันกำลังพยายามหาวิธีจัดการกับสถานการณ์ที่ล้มเหลวซึ่งฉันเลื่อนตำแหน่งสลาฟไปเป็นมาสเตอร์ (ในกรณีที่มาสเตอร์ลงไป) แอ็พพลิเคชันเซิร์ฟเวอร์ของฉันต้องกำหนดให้การเขียนทั้งหมดไปยังต้นแบบปัจจุบัน แต่ฉันไม่สามารถใช้ HA ระดับเซิร์ฟเวอร์ระหว่างต้นแบบและทาส (heartbeat, keepalived) เนื่องจากเซิร์ฟเวอร์ db สองตัวอยู่บนเครือข่ายย่อยที่แตกต่างกันโดยสิ้นเชิงในตำแหน่งที่ตั้งทางกายภาพที่แตกต่างกัน ฉันคิดว่านี่เป็นสิ่งที่ฉันต้องจัดการในระดับแอปพลิเคชัน ฉันสามารถค้นหาเซิร์ฟเวอร์ทั้งสองและถามว่าเซิร์ฟเวอร์ใดเป็นเซิร์ฟเวอร์หลักแล้วดำเนินการสอบถามทั้งหมดไปยังเซิร์ฟเวอร์นั้น มีแบบสอบถามใน MySQL เพื่อดูว่าเซิร์ฟเวอร์ปัจจุบันเป็นหลักในแบบจำลองต้นแบบทาสหรือไม่?

3
มีความแตกต่างในการดำเนินการระหว่างเงื่อนไข JOIN และเงื่อนไข WHERE หรือไม่
มีความแตกต่างของประสิทธิภาพระหว่างเคียวรีตัวอย่างทั้งสองหรือไม่ แบบสอบถาม 1: select count(*) from table1 a join table2 b on b.key_col=a.key_col where b.tag = 'Y' แบบสอบถาม 2; select count(*) from table1 a join table2 b on b.key_col=a.key_col and b.tag = 'Y' สังเกตเห็นความแตกต่างเพียงอย่างเดียวคือการวางเงื่อนไขเสริม; ครั้งแรกที่ใช้WHEREประโยคและครั้งที่สองจะเพิ่มเงื่อนไขในONข้อ เมื่อฉันเรียกใช้แบบสอบถามเหล่านี้ในระบบ Teradata ของฉันแผนการอธิบายนั้นเหมือนกันและขั้นตอนการเข้าร่วมแสดงเงื่อนไขเพิ่มเติมในแต่ละกรณี อย่างไรก็ตามในคำถาม SO นี้เกี่ยวกับ MySQL หนึ่งในคำตอบที่แนะนำว่าควรใช้รูปแบบที่สองเนื่องจากWHEREการประมวลผลเกิดขึ้นหลังจากทำการรวม มีกฎทั่วไปที่ต้องปฏิบัติตามเมื่อมีการเข้ารหัสคิวรีเช่นนี้ ฉันเดาว่ามันต้องขึ้นอยู่กับแพลตฟอร์มเพราะเห็นได้ชัดว่ามันไม่ได้สร้างความแตกต่างให้กับฐานข้อมูลของฉัน แต่บางทีนั่นอาจเป็นเพียงคุณสมบัติของ Teradata และถ้ามันเป็นขึ้นอยู่กับแพลตฟอร์มผมชอบมากที่จะได้รับการอ้างอิงเอกสารไม่กี่; ฉันไม่รู้ว่าจะมองหาอะไรจริงๆ

3
อะไรคือความแตกต่างระหว่าง POINT (X, Y) และ GeomFromText (“ POINT (XY)”)
ฉันต้องการจัดเก็บตำแหน่งทางเรขาคณิตบางอย่างในฐานข้อมูล MySQL ของฉัน สำหรับสิ่งนี้ฉันใช้ประเภทข้อมูล POINT เกือบทุกที่ฉันอ่านว่าGeomFromTextควรใช้ฟังก์ชั่นเพื่อแทรกข้อมูลลงในตาราง อย่างไรก็ตามฉันพบว่าPOINT(X,Y)ยังใช้งานได้ ฉันไม่พบคำอธิบายว่าทำไมควรจะนำมาใช้แทนGeomFromTextPOINT ตัวอย่างเช่นฉันมีความสัมพันธ์แบบง่าย ๆ ดังต่อไปนี้: CREATE TABLE Site ( SiteID BIGINT UNSIGNED, Position POINT ); และฉันสามารถแทรกค่าโดยใช้สองตัวแปรต่อไปนี้: INSERT INTO Site ( 1, GeomFromText( 'POINT(48.19976 16.45572)' ) ); INSERT INTO Site ( 2, POINT(48.19976, 16.45572) ); เมื่อฉันดูตาราง ( SELECT * FROM Site) ฉันเห็นหยดเลขฐานสองเดียวกันสำหรับตำแหน่งและเมื่อฉันดูพิกัด ( SELECT *, …

5
วิธีจัดการผู้ใช้หลายล้านคน
ฉันกำลังจะเปิดตัวสิ่งที่ยิ่งใหญ่จริงๆ ฉันต้องเตรียมเซิร์ฟเวอร์และฐานข้อมูลของฉัน ฉันต้องการจัดกลุ่มผู้ใช้ 100,000 คนในตารางผู้ใช้แยกกัน แต่ฉันไม่ทราบวิธีเชื่อมโยงผู้ใช้รายหนึ่งที่พยายามล็อกอินเข้าสู่ตารางผู้ใช้ที่เหมาะสม ตัวอย่างเช่นฉันจะรู้ได้อย่างไรว่าผู้ใช้jay@mail.comนั้นเกี่ยวข้องกับตารางผู้ใช้ # 36 มันจะเหมือนกันไหมที่มีผู้ใช้ 10 ล้านคนในตารางผู้ใช้หนึ่งคนหรือ 100 จาก 100,000 คน? Facebook เป็นอย่างไร ฉันไม่อยากเชื่อเลยว่าพวกเขาจะมีโต๊ะผู้ใช้ทั่วโลกที่มี 950 ล้านรายการ
17 mysql  users 


1
ในการจำลองแบบ MySQL Master / Slave จะเกิดอะไรขึ้นถ้าฉันเขียนไปยัง Slave
หลายคำถาม รายการ Slave จะยังคงอยู่จนกว่าจะมีการแทรก / อัปเดต / ลบไปยังตารางใน Master ที่อาจส่งผลกระทบต่อ Slave? ถ้าไม่ฉันจะแน่ใจได้อย่างไรว่า Slave ซิงค์กับ Master ต่อไป (โดยการลบรายการ Slave หรือคัดลอกรายการนั้นไปยัง Master ด้วยตนเอง) ที่สำคัญที่สุดฉันจะตรวจสอบได้อย่างไรว่าตารางนั้นไม่ซิงค์กัน?

2
ไม่มีการใช้ดัชนีคีย์หลักที่มี DATETIME เนื่องจากส่วนแรกของคีย์ผสม
ฉันมีปัญหากับการทำดัชนีเวลา (หรือแม้กระทั่งวันที่) เป็นส่วนแรกของคีย์หลักของฉัน ฉันใช้ MySQL 5.5 นี่คือสองตารางของฉัน: -- This is my standard table with dateDim as a dateTime CREATE TABLE `stats` ( `dateDim` datetime NOT NULL, `accountDim` mediumint(8) unsigned NOT NULL, `execCodeDim` smallint(5) unsigned NOT NULL, `operationTypeDim` tinyint(3) unsigned NOT NULL, `junkDim` tinyint(3) unsigned NOT NULL, `ipCountryDim` smallint(5) unsigned NOT …

4
เรียกกระบวนงานที่เก็บไว้จากทริกเกอร์
ฉันได้สร้างกระบวนงานที่เก็บไว้ใน mysql โดยใช้ไวยากรณ์ต่อไปนี้ DROP PROCEDURE IF EXISTS `sp-set_comment_count`; DELIMITER $$ CREATE PROCEDURE `sp_set-comment_count` (IN _id INT) BEGIN -- AC - AllCount DECLARE AC INT DEFAULT 0; SELECT COUNT(*) AS ac INTO AC FROM usergroups AS ug LEFT JOIN usergroup_comments AS ugm ON ugm.`gid` = ug.`id` LEFT JOIN mediagallery AS dm …

5
โครงสร้างพื้นฐานสำหรับฐานข้อมูลการเขียนสูงพร้อมกันสูง
ความต้องการของฉันคือ: การเชื่อมต่อ 3000 70-85% เขียน vs อ่าน ขณะนี้เรากำลังใช้งาน CPU ระดับสูง, ขนาดใหญ่พิเศษเป็นพิเศษที่ 700 การเชื่อมต่อ 8 แกนทั้งหมดมีค่าสูงสุด เราคิดว่ามันเป็นจำนวนของการเชื่อมต่อพร้อมกันเนื่องจากหน่วยความจำดี การเขียนนั้นง่ายมาก (การตรวจสอบความถูกต้องช้า) หากต้องการขยายขนาดเป็น 3000 เราต้องไปที่เซิร์ฟเวอร์หลายตัวเลือกปัจจุบัน: MySQL Sharding MongoDB คลัสเตอร์ คาสซานดรา Hadoop & MySQL (แคช Hadoop, ดัมพ์เดี่ยวไปยัง MySQL) MongoDB & MySQL (แทนที่จะเป็น Hadoop เราใช้ Mongo เป็นแคช) เพื่อจัดการกับจำนวนการเชื่อมต่อนี้จำนวนคำถาม: MySQL Sharding สามารถจัดการการเชื่อมต่อพร้อมกันได้หรือไม่? มาสเตอร์คนใดคนหนึ่งสามารถจัดการการเชื่อมต่อที่เกิดขึ้นพร้อมกันเหล่านี้หรือตัวเลือกที่ดีกว่าหลายอย่างเช่น Mongo ได้หรือไม่? ฉันขอโทษถ้าฉันอธิบายปัญหาไม่ได้ กรุณาถามคำถาม

3
สุดยอด MyISAM และ InnoDB
เป็นไปได้หรือไม่ที่จะทำให้ InnoDB ใช้ดัชนีเช่นเดียวกับ MyISAM แทนที่จะเป็นดัชนีแบบคลัสเตอร์เนื่องจากข้อ จำกัด ของ RAM ในขณะที่รับประโยชน์จากประสิทธิภาพการทำงานพร้อมกัน?


2
ฆ่าแบบสอบถามทั้งหมด - MySQL
บางครั้งในช่วง SNAFU ฉันต้องวิ่งkill query xxxxxxxยี่สิบหรือสามสิบครั้ง kill allคำสั่งประเภทใดที่ฉันขาดหายไป? เพราะฉันไม่ชอบพิมพ์
17 mysql 

3
วิธีการบันทึกแบบสอบถาม MySQL ทั้งหมดลงในไฟล์บันทึกได้อย่างไร
ฉันใช้ Mysql 5.6.12 ภายใต้สภาพแวดล้อมเซิร์ฟเวอร์ Wamp ตอนนี้ฉันต้องการบันทึกคำค้นหาทั้งหมดลงในไฟล์ ".log" ข้อความค้นหาที่เรียกใช้โดย PHP หรือจาก PHPMyAdmin ฉันต้องการบันทึกข้อความเหล่านี้ ...
17 mysql  log 

3
ฐานข้อมูล MySQL ตรึงหลังจาก 'ใช้'
ฉันเพิ่งทำผิดค่อนข้างโง่และติดตั้ง Ubuntu ของฉันเสียหาย เพื่อแก้ไขมันฉันบูตกับซีดีสดและคัดลอกไฟล์ฐานข้อมูลไป อย่างไรก็ตามตอนนี้ฉันได้คัดลอกโฟลเดอร์จากการติดตั้งเก่าไปยังโฟลเดอร์ใหม่เมื่อใดก็ตามที่ฉันพิมพ์ "use database_name" มันก็ค้างในสิ่งนี้: mysql> use my_database_name; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A แล้วค้างโดยไม่ต้องให้เครื่อง
17 mysql  backup 

2
ความหมายของ tinyint (N) คืออะไร?
เมื่อเราใช้ความยาวอาร์กิวเมนต์กับชนิดข้อมูลตัวเลขเท่าที่ฉันรู้ว่าสิ่งนี้ระบุความกว้างของการแสดงผล ฉันพยายามต่อไปนี้: mysql> create table boolean_test (var1 boolean, var2 tinyint); Query OK, 0 rows affected (0.10 sec) mysql> show create table boolean_test; +--------------+------------------------- | Table | Create Table +--------------+------------------------- | boolean_test | CREATE TABLE `boolean_test` ( `var1` tinyint(1) DEFAULT NULL, `var2` tinyint(4) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +--------------+--------------------------- …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.