Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сколько записей в таблице mysql вмещается
 
 автор: Elena91   (10.01.2017 в 05:37)   письмо автору
 
 

Сделала на сайте лайк/дизлайк систему. И создала таблицу.


CREATE TABLE IF NOT EXISTS `likes` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `userid` int(10) NOT NULL,
  `userid2` int(10) NOT NULL,
  `postid` int(10) NOT NULL,
  `date` int(10) NOT NULL,
  `type` enum('like','dislike','none') NOT NULL DEFAULT 'like',
  `typedata` enum('materials','messages') NOT NULL DEFAULT 'materials',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=167 ;


где
id - уникальный индентификатор
userid пользователь который сделал лайк
userid2 - пользователь который разместил пост и по этому посту делают лайки.
postid - идентификатор поста где ставят лайки
date - дата когда пользователь поставил лайк.
type - тип голосования принимает три значения лайк дизлайк и none
typedata - данные которые лайкает пользователь это могут быть статьи или комментарии.

И теперь у меня вопрос сколько записей может хранить одна таблица, учитывая что один лайк это запись в таблицы? И какие могут быть еще рекомендации по хранении больших объемов информации в одной таблицы?

  Ответить  
 
 автор: elenaki   (10.01.2017 в 11:31)   письмо автору
 
   для: Elena91   (10.01.2017 в 05:37)
 

Храниться данных в mysql может очень много, у вас столько не наберется. Совет - все id сделать индeксами.

  Ответить  
 
 автор: Elena91   (13.01.2017 в 04:27)   письмо автору
 
   для: elenaki   (10.01.2017 в 11:31)
 

Все сделала.

CREATE TABLE IF NOT EXISTS `likes` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `userid` int(10) NOT NULL,
  `userid2` int(10) NOT NULL,
  `postid` int(10) NOT NULL,
  `date` int(10) NOT NULL,
  `type` enum('like','dislike','none') NOT NULL DEFAULT 'like',
  `typedata` enum('materials','messages') NOT NULL DEFAULT 'materials',
  PRIMARY KEY (`id`),
  KEY `id` (`id`,`userid`,`userid2`,`postid`,`date`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Вопрос: зачем нужно было все id делать индексами и чем index отличается от primary key?

  Ответить  
 
 автор: elenaki   (13.01.2017 в 16:04)   письмо автору
 
   для: Elena91   (13.01.2017 в 04:27)
 

Для более быстрого поиска.
У меня есть таблицы по 11 млн записей. По имени найти что-то нереально, а по полю, где есть индекс ищет.

  Ответить  
 
 автор: Elena91   (14.01.2017 в 05:01)   письмо автору
 
   для: elenaki   (13.01.2017 в 16:04)
 

На тестовом сайте localhost удалила таблицу и создала заново назначив всем id индексы. При редактировании таблицы не получается назначить индексы. Можно как-нибудь это сделать с помощью команд например таких как ALTER TABLE, а то на основном сайте у меня уже создана таблица без индексов и уже кто-то проголосовал за статьи не хочется удалять таблицу и заново создавать?

  Ответить  
 
 автор: elenaki   (16.01.2017 в 12:11)   письмо автору
 
   для: Elena91   (14.01.2017 в 05:01)
 

ALTER TABLE имя_таблицы ADD INDEX имя_индекса (список_столбцов);


Я бы сделала индексы по каждому полю, где записаны id, а не по всем вместе. PhpMyAdmin долго, но строит индексы и к существующим (заполненным) таблицам. Я, правда, на локальном делала. По 2 часа ждала, но сделала..

  Ответить  
 
 автор: Elena91   (13.02.2017 в 01:09)   письмо автору
 
   для: elenaki   (16.01.2017 в 12:11)
 

Сейчас изучаю php и mysql. Конечно прошло много времени когда я задала вопрос про количество записей в mysql, но все таки как сделать индексы по каждому полю а не по всем вмести. Можно увидеть пример.

  Ответить  
 
 автор: elenaki   (23.02.2017 в 10:54)   письмо автору
 
   для: Elena91   (13.02.2017 в 01:09)
 

В PMA? Создать индекс (команда с плюсиком), выбрать ОДИН столбец, выбрать тип - index, дать имя, нажать OK, ждать.
или
ALTER TABLE имя_таблицы ADD INDEX имя_индекса ( имя столбцa);

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования