タグ付けされた質問 「mysql」

MySQLのすべてのバージョン(Microsoft SQL Serverではありません)。質問に関連する場合は、mysql-5.7のようなバージョン固有のタグも追加してください。

2
ビューには独自の外部キー制約が必要ですか?
免責事項:私はDBAではなくプログラマーなので、我慢してください... 2つのエンティティを一緒にマッピングするために使用するビューがあります。それを取得するには、いくつかの異なるテーブル間で結合を行う必要があります。 CREATE OR REPLACE VIEW V_SCREENING_GROUP_SITES AS ( SELECT SG.SCREENING_GROUP_ID, V.SITE_ID FROM SCREENING_GROUP SG, VISIT V, VISIT_DATE VD WHERE VD.VISIT_ID = V.VISIT_ID AND V.SCREENING_GROUP_ID = SG.SCREENING_GROUP_ID); 上記は説明用です。あまり気にしないでください。私が知る必要があるのは、新しいV_SCREENING_GROUP_SITESビューのフィールド(SCREENING_GROUP_IDおよびSITE_ID)を、SCREENING_GROUPおよびSITEテーブルへの外部キーとして動作させる方法です。それとも問題ですか? それがテーブルだったとしたら、 ALTER TABLE V_SCREENING_GROUP_SITES ADD CONSTRAINT FK_SCREENING_GROUP_ID FOREIGN KEY (SCREENING_GROUP_ID) REFERENCES SCREENING_GROUP.SCREENING_GROUP_ID; ... しかし、それは明らかに機能しないビューなので、FKを設定するために機能するALTER VIEW構文が見つかりませんでした。私は何をすべきか? (これはMySQLデータベースです)

2
MySQLで列の中央値を見つけるにはどうすればよいですか?
2つのデータベースクエリでこれを実行することしか想像できません。1つ目はデータベース内の行数を検索し、2つ目ORDER BYは関心のある列をLIMIT X, 1X で選択します。Xは行数の半分です。 1つのクエリのみでこれを行う簡単な方法はありますか? 現在、計算には平均を使用していますが、平均はより良いと思います。値に上限はなく、値は下から0で制限されます。 編集:はい、私は「中央値」と言うつもりでしたが、いくつかの脳のエラーがあり、「平均値」を検索しました。私は今stackoverflowで答えを見つけました
10 mysql 

2
複数のユーザータイプとその連絡先情報のデータベース構造のモデリング
さまざまなタイプのユーザーを格納するデータベースを設計しています。主に(ただし、これに限定されません)、俳優、監督、作家になります。現在、関連するユーザータイプは4つだけです。この数は増加する可能性がありますが、確率は低く、そのような場合は非常に小さい数になる可能性があります。 計画は持っているusersサイトにログインするためにかなりの責任を負うテーブルを(name、emailおよびpasswordそれぞれのユーザタイプのそれぞれの列に加えて1つまたは複数のそのような彼らが承認されてきたかどうかなど、他の二つ、とupdated_atの)、および追加のテーブルごといます独自の列のセットがあります。たとえば、俳優だけが民族の列を持ち、ディレクターだけが経歴の列を持ち、ライターだけが場所を提供する必要があります。ただし、この複雑なデータベースを管理したことがないので、いくつかの側面を整理する方法を考えています。 第一に、ユーザーは上記のタイプのいずれか、または任意の組み合わせにすることができます。だから私は(例えば)と列を持つdirector_userテーブルのようなものが必要になることを理解しdirector_idていuser_idます。これで、ロールタイプなどですべてのユーザーをフィルタリングできるようになりますか? 次に、ほとんどのユーザーはTwitterのプロフィールと電話番号のオプションを選択します。また、すべての俳優には、他のオンライン俳優プロファイルのURLを少なくとも1つ含める必要があります。現在、含めることができる3つがありますが、この数は増える可能性があります。可能なプロファイル/連絡方法ごとに個別のテーブルがデータを編成するための最適な方法であると私は思いますか?

1
InnoDB:MLOG_CHECKPOINTがないためにREDOログを無視する
私はmysqlバージョン5.7.14(OS X El Capitanでの自作インストール)を使用しています。mysqlの実行中にシステムが正常にシャットダウンせず、mysqlデーモンを起動しようとしたときに再起動した後、以下のエラーが発生しました。 2017-02-07T10:11:42.224506Z 0 [Note] mysqld (mysqld 5.7.14) starting as process 18234 ... 2017-02-07T10:11:42.227375Z 0 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive 2017-02-07T10:11:42.228809Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-02-07T10:11:42.228821Z 0 [Note] InnoDB: Uses event mutexes 2017-02-07T10:11:42.228826Z 0 [Note] InnoDB: …

4
エラー1236-「バイナリログインデックスファイルで最初のログファイル名が見つかりませんでした」
私たちのセットアップ: マスター:MariaDB 10.0.21 スレーブ:MariaDB 10.0.17 レプリケーションは最近まで正常に機能しており、その時点でスレーブのDBをダンプから復元する必要がありました。必要なすべての手順を実行しました。マスターのDBをダンプし、ダンプをスレーブに転送し、古いDBをドロップし、ダンプを実行してDBを復元し、適切なCHANGE MASTERコマンドを実行し、最後にを実行しましたSTART SLAVE。 エラーが表示されます: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file' スレーブがマスターから必要とする最初のログファイルはmysql-bin.000289です。これがマスター上にあることがわかります: マスターのバイナリログインデックスに、このログファイルのエントリがあるように見えることもわかります。 それでもレプリケーションは機能していません-同じエラーが発生し続けます。アイデアが足りません-次に何を確認すればよいですか? 更新:SHOW SLAVE STATUS\G要求通りの出力: MariaDB [(none)]> SHOW SLAVE STATUS\G -------------- SHOW SLAVE STATUS -------------- *************************** …

3
一括削除後にmysqlテーブルのインデックスを再作成する必要がありますか?
MySQLに、毎秒多くのINSERTとSELECTを実行するテーブルがあります。そして、1日に1回、古いデータの一括削除があります。削除後にテーブルのインデックスを再作成する必要がありますか?性能を上げたい。誰かがいくつかのヒントを提案できますか?ストレージエンジンとして「innodb」を使用する。変更する必要がありますか?同時挿入と選択の方が良いと思います。あなたの提案をお願いします。インデックスの再作成を行う必要がありますか? 前もって感謝します..

3
列のnull値と非null値をカウントする
MySQLの同じ列でnullとnot nullをカウントして取得する方法は? mytable --------------------------------------------------- id | name | visited | registDate | --------------------------------------------------- 1 | george | NULL | 2014-04-01 | --------------------------------------------------- 2 | Thomas | NULL | 2014-04-15 | --------------------------------------------------- 3 | Wilfred | 1 | 2014-04-24 | --------------------------------------------------- 4 | paul | 1 | 2014-04-10 | --------------------------------------------------- 5 …
10 mysql  count  null 

1
filesortを回避することは可能ですか?
次のSELECTクエリで「一時的な使用」と「ファイルソートの使用」を回避することはできますか?それを行う方法がわかりません。 top_expireとプログラムの両方でインデックスを追加しようとしましたが、役に立ちませんでした。ORDERBYを使用すると、クエリは1秒以上かかり、ローカルホストでは0.003秒しかありません。 クエリ SELECT ad.*, p.link FROM (SELECT ad.* FROM mod_ad ad JOIN mod_ad_auta auta ON ad.id = auta.ad_id WHERE ad.active != 0 AND ad.usr_active != 0 AND ad.expire > 1371151608 AND ad.cat_id = '1' AND ad.price <= '10000' AND auta.rocnik BETWEEN '1950' AND '2013' AND auta.km BETWEEN '0' AND …

1
MySQL:大きな列に対する一意の制約
VARCHAR最大3071文字を保持できる列を含むInnoDBテーブルを作成しようとしています。UNIQUEこの列のデータに制約を課したいのですが。 MySQLはインデックスを使用して制約を強制しているようです。InnoDBでは、インデックスサイズは767バイトに制限されているように見えます- VARCHAR(3071)データを保持している列には十分ではありません。 最大データ長やInnoDBの使用に妥協することなく、データベースにデータの一意性を強制する方法についての考えはありますか?

2
MySQLはポイントデータ型をLAT LNGまたはLNG LATとして格納しますか?
位置形式を緯度に続いて経度として表示することに慣れていますが、ライブラリを使用すると、MySQLがそれをPOINT(LNG LAT)と逆の順序で格納することを理解していると思います。私のライブラリは間違っていますか、それともこれが実際の形式ですか?MySQLのドキュメントでこの詳細を見つけることができないようです。
9 mysql  spatial 

4
MySQLを介して半径でzipを取得する際の問題
各郵便番号の中央の緯度と経度を含む郵便番号の表があります。私はそれを使用して、任意のポイントから半径1マイル以内の郵便番号のリストを取得します。 ジッパーの中心点が特定の半径内にないからといって、ジップ自体が半径内にないということにはならないということが、私に思い浮かんだばかりです。 超高度なアートスキルを使用して、ここでポイントを説明しました。 緑のストライプのブロブは、郵便番号A、B、Cを表しています。 赤い汚れは各郵便番号の地理的中心です フクシアドットはターゲットの場所です。 でこぼこの青い円は、ターゲットの場所から半径1マイルです。 ピンク色の汚れから半径1マイル以内のすべての郵便番号に対してクエリを実行すると、ピンク色の汚れ自体であっても、郵便番号BとCのみが返されます。郵便番号Aの中心点は半径1マイル以内にないためです。明らかに郵便番号Aです。 SELECT *, p.distance_unit * DEGREES(ACOS(COS(RADIANS(p.latpoint)) * COS(RADIANS(z.y)) * COS(RADIANS(p.longpoint) - RADIANS(z.x)) + SIN(RADIANS(p.latpoint)) * SIN(RADIANS(z.y)))) AS dist FROM standard_zip AS z JOIN ( /* these are the query parameters */ SELECT $lat AS latpoint, $lng AS longpoint, $miles AS radius, 69 AS …

2
データウェアハウス:毎日のスナップショットを照会するにはどうすればよいですか?
時系列ではないデータベースのスナップショットがいくつかあります。例えば: スナップショット1日目: +----+---------------+------------+------------+ | ID | Title | Category | Date | +----+---------------+------------+------------+ | 1 | My First Post | helloworld | 2015-01-01 | +----+---------------+------------+------------+ スナップショット2日目(新しい投稿が今日追加されます): +----+----------------+------------+------------+ | ID | Title | Category | Date | +----+----------------+------------+------------+ | 1 | My first post | helloworld | 2015-01-01 | | 2 …

2
MySQLワークベンチをMySQLコンテナーに接続する
DockerhubからMySQLコンテナーをプルし、次のように私のMacbook Proで実行しています。 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 12cd3deaa3f0 mysql:latest "/entrypoint.sh mysql" 47 hours ago Up 10 minutes 3306/tcp mysqldb 次に、MySQLワークベンチをダウンロードし、それをMySQLコンテナーに接続しようとしましたが、機能しません。接続エラーが表示されます。 Your connection attempt failed for user 'root' from your host to server at 192.168.99.102:3306: Can't connect to MySQL server on '192.168.99.102' (60) DockerマシンからのIPは docker-machine ip default 192.168.99.100 …

2
ユーザーごとのアクティブなMySQL接続を表示する
特定のユーザーに対して、特定のデータベースへのアクティブな接続数または開いている接続数を取得するクエリが必要です。私は何時間も探していましたが、今のところ何も思いつきませんでした。私は近いので、ここで私が試したことがあります。 SHOW STATUS WHERE `variable_name` = 'Threads_connected'; SHOW STATUS LIKE '%onn%'; SELECT * FROM information_schema.processlist WHERE USER='database_user'; 私はWebホスティング会社で働いており、クライアントの1つが彼のmax_user_connections限界に達し続けているため、ユーザーが共有サーバーではないため、ユーザーが現在使用している接続の数を知る必要がある理由をトラブルシューティングします。現在、MySQL(InnoDB)バージョン5.5.36を使用しています。どんな助けでも大歓迎です!

2
MySQL:delete…where..in()対delete..from..join、およびサブセレクトを使用した削除時にロックされたテーブル
免責事項:データベースの内部に関する知識が不足していることをお許しください。ここに行く: データベースの定期的なクリーンアップジョブで大きなパフォーマンスの問題があるアプリケーション(私たちが作成したものではありません)を実行します。クエリは次のようになります。 delete from VARIABLE_SUBSTITUTION where BUILDRESULTSUMMARY_ID in ( select BUILDRESULTSUMMARY_ID from BUILDRESULTSUMMARY where BUILDRESULTSUMMARY.BUILD_KEY = "BAM-1"); わかりやすく、読みやすく、標準SQL。しかし、残念ながら非常に遅いです。クエリを説明すると、既存のインデックスVARIABLE_SUBSTITUTION.BUILDRESULTSUMMARY_IDが使用されていないことがわかります。 mysql> explain delete from VARIABLE_SUBSTITUTION where BUILDRESULTSUMMARY_ID in ( -> select BUILDRESULTSUMMARY_ID from BUILDRESULTSUMMARY -> where BUILDRESULTSUMMARY.BUILD_KEY = "BAM-1"); | id | select_type | table | type | possible_keys | key | …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.